Settings: Make all user apps cloneable

* Filter system apps and overlays
* Include pre-defined apps in com.android.internal.R.array.cloneable_apps

Change-Id: Ia08a1095cd2aec9c6d77d055f1344e57225a44d5
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
someone5678
2023-10-18 21:23:42 +09:00
committed by Joey
parent 9051e97b8c
commit 53b71e539d
3 changed files with 36 additions and 5 deletions

View File

@@ -30,6 +30,7 @@ import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.custom.utils.AppUtils;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
@@ -45,6 +46,7 @@ public class ClonedAppsPreferenceController extends BasePreferenceController
implements LifecycleObserver {
private Preference mPreference;
private Context mContext;
private AppUtils appUtils = new AppUtils();
public ClonedAppsPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -81,9 +83,7 @@ public class ClonedAppsPreferenceController extends BasePreferenceController
@Override
protected Integer[] doInBackground(Void... unused) {
// Get list of allowlisted cloneable apps.
List<String> cloneableApps = Arrays.asList(
mContext.getResources().getStringArray(
com.android.internal.R.array.cloneable_apps));
List<String> cloneableApps = appUtils.getCloneableAppListStr(mContext);
List<String> primaryUserApps = mContext.getPackageManager()
.getInstalledPackagesAsUser(/* flags*/ 0, UserHandle.myUserId()).stream()
.map(x -> x.packageName).toList();