Skip to content

Commit 9659ec0

Browse files
Package Info: Hopefully fixed recyclerview items duplicating
Signed-off-by: sunilpaulmathew <sunil.kde@gmail.com>
1 parent 5ffbb57 commit 9659ec0

1 file changed

Lines changed: 44 additions & 36 deletions

File tree

app/src/main/java/com/smartpack/packagemanager/fragments/PackageInfoFragment.java

Lines changed: 44 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@
6565
*/
6666
public class PackageInfoFragment extends Fragment {
6767

68-
private final List<PackageInfoItems> mPackageInfoItems = new ArrayList<>();
69-
private final List<PackageOptionsItems> mPackageOptionsItems = new ArrayList<>();
68+
private boolean mRootOrShizuku = false;
7069

7170
@SuppressLint("StringFormatInvalid")
7271
@Nullable
@@ -85,45 +84,15 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
8584
mPackageOptions.setLayoutManager(new LinearLayoutManager(requireActivity(), LinearLayoutManager.HORIZONTAL, false));
8685
mPackageInfo.setLayoutManager(new LinearLayoutManager(requireActivity()));
8786

88-
boolean mRootOrShizuku = new RootShell().rootAccess() || new ShizukuShell().isReady();
89-
boolean mAppBundle = new File(sPackageUtils.getSourceDir(Common.getApplicationID(), requireActivity())).getName().equals("base.apk") && SplitAPKInstaller
90-
.splitApks(sPackageUtils.getParentDir(Common.getApplicationID(), requireActivity())).size() > 1;
91-
String certificate = APKParser.getCertificateDetails(sPackageUtils.getSourceDir(Common.getApplicationID(), requireActivity()), requireActivity()).trim();
92-
93-
if (sPackageUtils.isEnabled(Common.getApplicationID(), requireActivity())) {
94-
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_open, requireActivity()), getString(R.string.open), 0));
95-
}
96-
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_explore, requireActivity()), getString(R.string.explore), 1));
97-
if (mRootOrShizuku) {
98-
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_disable, requireActivity()), getString(sPackageUtils.isEnabled(
99-
Common.getApplicationID(), requireActivity()) ? R.string.disable : R.string.enable), 2));
100-
}
101-
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_delete, requireActivity()), getString(R.string.uninstall), 3));
102-
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_settings, requireActivity()), getString(R.string.app_info), 4));
103-
104-
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.package_id), Common.getApplicationID(), null, null,
105-
getString(R.string.more), sCommonUtils.getDrawable(R.drawable.ic_dots, requireActivity())));
106-
mPackageInfoItems.add(new PackageInfoItems(getString(mAppBundle ? R.string.bundle_path : R.string.apk_path), sPackageUtils.getParentDir(
107-
Common.getApplicationID(), requireActivity()), null, mAppBundle ? getString(R.string.size_bundle, PackageData
108-
.getBundleSize(sPackageUtils.getParentDir(Common.getApplicationID(), requireActivity()))) : getString(R.string.size_apk,
109-
sAPKUtils.getAPKSize(new File(Common.getSourceDir()).length())), getString(R.string.export), sCommonUtils.getDrawable(
110-
R.drawable.ic_export, requireActivity())));
111-
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.data_dir), Common.getDataDir(), null, null,
112-
mRootOrShizuku ? getString(R.string.reset) : null, mRootOrShizuku ? sCommonUtils.getDrawable(R.drawable.ic_reset, requireActivity()) : null));
113-
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.native_lib), null, Common.getNativeLibsDir(), null,
114-
null, null));
115-
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.date_installation), null, getString(R.string.date_installed, sPackageUtils.getInstalledDate(
116-
Common.getApplicationID(), requireActivity())) + "\n" + getString(R.string.date_updated, sPackageUtils.getUpdatedDate(Common.getApplicationID(),
117-
requireActivity())), null, null, null));
118-
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.certificate), null, certificate, null, null, null));
87+
mRootOrShizuku = new RootShell().rootAccess() || new ShizukuShell().isReady();
11988

120-
mPackageOptionsAdapter = new PackageOptionsAdapter(mPackageOptionsItems);
121-
mPackageInfoAdapter = new PackageInfoAdapter(mPackageInfoItems);
89+
mPackageOptionsAdapter = new PackageOptionsAdapter(getPackageOptionsData());
90+
mPackageInfoAdapter = new PackageInfoAdapter(getPackageInfoData());
12291
mPackageOptions.setAdapter(mPackageOptionsAdapter);
12392
mPackageInfo.setAdapter(mPackageInfoAdapter);
12493

12594
mPackageOptionsAdapter.setOnItemClickListener((position, v) -> {
126-
switch (mPackageOptionsItems.get(position).getPosition()) {
95+
switch (getPackageOptionsData().get(position).getPosition()) {
12796
case 0:
12897
if (Common.getApplicationID().equals(BuildConfig.APPLICATION_ID)) {
12998
sCommonUtils.snackBar(mRootView, getString(R.string.open_message)).show();
@@ -271,4 +240,43 @@ public void handleOnBackPressed() {
271240
return mRootView;
272241
}
273242

243+
@SuppressLint("StringFormatInvalid")
244+
private List<PackageInfoItems> getPackageInfoData() {
245+
List<PackageInfoItems> mPackageInfoItems = new ArrayList<>();
246+
boolean mAppBundle = new File(sPackageUtils.getSourceDir(Common.getApplicationID(), requireActivity())).getName().equals("base.apk") && SplitAPKInstaller
247+
.splitApks(sPackageUtils.getParentDir(Common.getApplicationID(), requireActivity())).size() > 1;
248+
String certificate = APKParser.getCertificateDetails(sPackageUtils.getSourceDir(Common.getApplicationID(), requireActivity()), requireActivity()).trim();
249+
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.package_id), Common.getApplicationID(), null, null,
250+
getString(R.string.more), sCommonUtils.getDrawable(R.drawable.ic_dots, requireActivity())));
251+
mPackageInfoItems.add(new PackageInfoItems(getString(mAppBundle ? R.string.bundle_path : R.string.apk_path), sPackageUtils.getParentDir(
252+
Common.getApplicationID(), requireActivity()), null, mAppBundle ? getString(R.string.size_bundle, PackageData
253+
.getBundleSize(sPackageUtils.getParentDir(Common.getApplicationID(), requireActivity()))) : getString(R.string.size_apk,
254+
sAPKUtils.getAPKSize(new File(Common.getSourceDir()).length())), getString(R.string.export), sCommonUtils.getDrawable(
255+
R.drawable.ic_export, requireActivity())));
256+
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.data_dir), Common.getDataDir(), null, null,
257+
mRootOrShizuku ? getString(R.string.reset) : null, mRootOrShizuku ? sCommonUtils.getDrawable(R.drawable.ic_reset, requireActivity()) : null));
258+
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.native_lib), null, Common.getNativeLibsDir(), null,
259+
null, null));
260+
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.date_installation), null, getString(R.string.date_installed, sPackageUtils.getInstalledDate(
261+
Common.getApplicationID(), requireActivity())) + "\n" + getString(R.string.date_updated, sPackageUtils.getUpdatedDate(Common.getApplicationID(),
262+
requireActivity())), null, null, null));
263+
mPackageInfoItems.add(new PackageInfoItems(getString(R.string.certificate), null, certificate, null, null, null));
264+
return mPackageInfoItems;
265+
}
266+
267+
private List<PackageOptionsItems> getPackageOptionsData() {
268+
List<PackageOptionsItems> mPackageOptionsItems = new ArrayList<>();
269+
if (sPackageUtils.isEnabled(Common.getApplicationID(), requireActivity())) {
270+
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_open, requireActivity()), getString(R.string.open), 0));
271+
}
272+
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_explore, requireActivity()), getString(R.string.explore), 1));
273+
if (mRootOrShizuku) {
274+
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_disable, requireActivity()), getString(sPackageUtils.isEnabled(
275+
Common.getApplicationID(), requireActivity()) ? R.string.disable : R.string.enable), 2));
276+
}
277+
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_delete, requireActivity()), getString(R.string.uninstall), 3));
278+
mPackageOptionsItems.add(new PackageOptionsItems(sCommonUtils.getDrawable(R.drawable.ic_settings, requireActivity()), getString(R.string.app_info), 4));
279+
return mPackageOptionsItems;
280+
}
281+
274282
}

0 commit comments

Comments
 (0)