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 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.List; import butterknife.BindView; import butterknife.ButterKnife; public class QuickAppActivity extends BaseActivity { public static final String QUICK_APP_KEY = "QuickAppKey"; private AppSelectedAdapter mAppSelectedAdapter; @BindView(R.id.recyclerView) RecyclerView recyclerView; @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 (BuildConfig.APPLICATION_ID.equals(packageInfo.applicationInfo.packageName)) { continue; } final boolean isSystem = (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; if (!listThirdParty || !isSystem) { AppSelectBean appSelectBean = new AppSelectBean(packageInfo.applicationInfo.loadLabel(pm).toString(), packageInfo.applicationInfo.packageName, packageInfo.applicationInfo.loadIcon(pm)); appSelectBeanList.add(appSelectBean); } } return appSelectBeanList; } }