92 lines
3.3 KiB
Java
92 lines
3.3 KiB
Java
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<String> hideApp = new HashSet<String>() {{
|
|
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<AppSelectBean> getPackageList() {
|
|
PackageManager pm = getPackageManager();
|
|
List<AppSelectBean> appSelectBeanList = new ArrayList<>();
|
|
List<PackageInfo> 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;
|
|
}
|
|
}
|