package com.uiui.aios.activity; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.util.Log; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.uiui.aios.BuildConfig; import com.uiui.aios.R; import com.uiui.aios.adapter.AppSelectedAdapter; import com.uiui.aios.base.BaseActivity; import com.uiui.aios.bean.AppSelectBean; import com.uiui.aios.view.GridSpaceItemDecoration; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import butterknife.BindView; import butterknife.ButterKnife; public class QuickAppActivity extends BaseActivity { private static final String TAG = QuickAppActivity.class.getSimpleName(); public static final String QUICK_APP_KEY = "QuickAppPackageKey"; public static final String QUICK_APP_REFRESH_KEY = "QuickAppRefreshKey"; public static final String QUICK_APP_ENABLED_KEY = "QuickAppEnabledKey"; private AppSelectedAdapter mAppSelectedAdapter; @BindView(R.id.recyclerView) RecyclerView recyclerView; private Set hideApp = new HashSet() {{ this.add(BuildConfig.APPLICATION_ID); this.add("com.android.calendar"); this.add("com.android.dreams.basic"); this.add("com.android.musicfx"); this.add("com.uiui.appstore"); this.add("com.uiui.sn"); }}; @Override public int getLayoutId() { return R.layout.activity_quick_app; } @Override public void initView() { ButterKnife.bind(this); mAppSelectedAdapter = new AppSelectedAdapter(); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); recyclerView.addItemDecoration(new GridSpaceItemDecoration(3, 50, 50)); } else { recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); recyclerView.addItemDecoration(new GridSpaceItemDecoration(2, 50, 50)); } recyclerView.setAdapter(mAppSelectedAdapter); } @Override public void initData() { mAppSelectedAdapter.setAppSelectBeans(getPackageList()); } boolean listThirdParty = true; private List getPackageList() { PackageManager pm = getPackageManager(); List appSelectBeanList = new ArrayList<>(); List applicationInfos = pm.getInstalledPackages(0); for (PackageInfo packageInfo : applicationInfos) { if (hideApp.contains(packageInfo.applicationInfo.packageName)) { continue; } final boolean isSystem = (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; if (!listThirdParty || !isSystem) { Log.e(TAG, "getPackageList: " + packageInfo.applicationInfo.packageName); AppSelectBean appSelectBean = new AppSelectBean(packageInfo.applicationInfo.loadLabel(pm).toString(), packageInfo.applicationInfo.packageName, packageInfo.applicationInfo.loadIcon(pm)); appSelectBeanList.add(appSelectBean); } } return appSelectBeanList; } }