mirror of
https://github.com/stom79/exodus-android-app
synced 2025-02-19 22:20:40 +01:00
Use data from ApplicationViewModel in ReportDisplay and ReportFragment
This commit is contained in:
parent
2ceb256f06
commit
9290d71cb0
@ -39,17 +39,18 @@ import androidx.fragment.app.FragmentTransaction;
|
|||||||
import com.google.android.material.snackbar.Snackbar;
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
import org.eu.exodus_privacy.exodusprivacy.adapters.ApplicationListAdapter;
|
import org.eu.exodus_privacy.exodusprivacy.adapters.ApplicationListAdapter;
|
||||||
|
import org.eu.exodus_privacy.exodusprivacy.adapters.ApplicationViewModel;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.databinding.MainBinding;
|
import org.eu.exodus_privacy.exodusprivacy.databinding.MainBinding;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.fragments.HomeFragment;
|
import org.eu.exodus_privacy.exodusprivacy.fragments.HomeFragment;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.fragments.ReportFragment;
|
import org.eu.exodus_privacy.exodusprivacy.fragments.ReportFragment;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.fragments.Updatable;
|
import org.eu.exodus_privacy.exodusprivacy.fragments.Updatable;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.listener.NetworkListener;
|
import org.eu.exodus_privacy.exodusprivacy.listener.NetworkListener;
|
||||||
|
import org.eu.exodus_privacy.exodusprivacy.manager.DatabaseManager;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private ReportFragment report;
|
|
||||||
private List<Updatable> fragments;
|
private List<Updatable> fragments;
|
||||||
private SearchView searchView;
|
private SearchView searchView;
|
||||||
private Menu toolbarMenu;
|
private Menu toolbarMenu;
|
||||||
@ -69,7 +70,14 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
for(Updatable updatable : fragments){
|
for(Updatable updatable : fragments){
|
||||||
|
if(updatable instanceof ReportFragment) {
|
||||||
|
ApplicationViewModel model = ((ReportFragment) updatable).getModel();
|
||||||
|
if(model.versionName == null)
|
||||||
|
model.report = DatabaseManager.getInstance(MainActivity.this).getReportFor(model.packageName, model.versionCode);
|
||||||
|
else
|
||||||
|
model.report = DatabaseManager.getInstance(MainActivity.this).getReportFor(model.packageName,model.versionName);
|
||||||
|
model.trackers = DatabaseManager.getInstance(MainActivity.this).getTrackers(model.report.trackers);
|
||||||
|
}
|
||||||
updatable.onUpdateComplete();
|
updatable.onUpdateComplete();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -97,7 +105,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
PackageManager pm = getPackageManager();
|
PackageManager pm = getPackageManager();
|
||||||
PackageInfo packageInfo = pm.getPackageInfo(vm.packageName, PackageManager.GET_PERMISSIONS);
|
PackageInfo packageInfo = pm.getPackageInfo(vm.packageName, PackageManager.GET_PERMISSIONS);
|
||||||
|
|
||||||
report = ReportFragment.newInstance(pm,packageInfo);
|
ReportFragment report = ReportFragment.newInstance(pm,vm,packageInfo);
|
||||||
fragments.add(report);
|
fragments.add(report);
|
||||||
FragmentManager manager = getSupportFragmentManager();
|
FragmentManager manager = getSupportFragmentManager();
|
||||||
FragmentTransaction transaction = manager.beginTransaction();
|
FragmentTransaction transaction = manager.beginTransaction();
|
||||||
|
@ -39,6 +39,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
|
|
||||||
import org.eu.exodus_privacy.exodusprivacy.R;
|
import org.eu.exodus_privacy.exodusprivacy.R;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.ReportViewModel;
|
import org.eu.exodus_privacy.exodusprivacy.ReportViewModel;
|
||||||
|
import org.eu.exodus_privacy.exodusprivacy.adapters.ApplicationViewModel;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.adapters.PermissionListAdapter;
|
import org.eu.exodus_privacy.exodusprivacy.adapters.PermissionListAdapter;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.adapters.TrackerListAdapter;
|
import org.eu.exodus_privacy.exodusprivacy.adapters.TrackerListAdapter;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.databinding.ReportBinding;
|
import org.eu.exodus_privacy.exodusprivacy.databinding.ReportBinding;
|
||||||
@ -48,14 +49,19 @@ public class ReportFragment extends Fragment implements Updatable {
|
|||||||
private PackageManager packageManager;
|
private PackageManager packageManager;
|
||||||
private PackageInfo packageInfo = null;
|
private PackageInfo packageInfo = null;
|
||||||
private ReportBinding reportBinding;
|
private ReportBinding reportBinding;
|
||||||
|
private ApplicationViewModel model;
|
||||||
|
|
||||||
public static ReportFragment newInstance(PackageManager packageManager, PackageInfo packageInfo) {
|
public static ReportFragment newInstance(PackageManager packageManager,ApplicationViewModel model, PackageInfo packageInfo) {
|
||||||
ReportFragment fragment = new ReportFragment();
|
ReportFragment fragment = new ReportFragment();
|
||||||
fragment.setPackageManager(packageManager);
|
fragment.setPackageManager(packageManager);
|
||||||
fragment.setPackageInfo(packageInfo);
|
fragment.setPackageInfo(packageInfo);
|
||||||
|
fragment.setApplicationViewModel(model);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setApplicationViewModel(ApplicationViewModel model) {
|
||||||
|
this.model = model;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@ -81,9 +87,13 @@ public class ReportFragment extends Fragment implements Updatable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdateComplete() {
|
public void onUpdateComplete() {
|
||||||
|
onUpdateComplete(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onUpdateComplete(ApplicationViewModel model) {
|
||||||
Context context = reportBinding.getRoot().getContext();
|
Context context = reportBinding.getRoot().getContext();
|
||||||
|
|
||||||
ReportDisplay reportDisplay = ReportDisplay.buildReportDisplay(context,packageManager,packageInfo);
|
ReportDisplay reportDisplay = ReportDisplay.buildReportDisplay(context,model,packageManager,packageInfo);
|
||||||
ReportViewModel viewModel = new ReportViewModel();
|
ReportViewModel viewModel = new ReportViewModel();
|
||||||
viewModel.setReportDisplay(reportDisplay);
|
viewModel.setReportDisplay(reportDisplay);
|
||||||
reportBinding.setReportInfo(viewModel);
|
reportBinding.setReportInfo(viewModel);
|
||||||
@ -146,4 +156,8 @@ public class ReportFragment extends Fragment implements Updatable {
|
|||||||
MenuItem item = menu.findItem(R.id.action_filter);
|
MenuItem item = menu.findItem(R.id.action_filter);
|
||||||
item.setVisible(false);
|
item.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApplicationViewModel getModel() {
|
||||||
|
return model;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import android.content.pm.PermissionInfo;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
|
import org.eu.exodus_privacy.exodusprivacy.adapters.ApplicationViewModel;
|
||||||
import org.eu.exodus_privacy.exodusprivacy.manager.DatabaseManager;
|
import org.eu.exodus_privacy.exodusprivacy.manager.DatabaseManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -31,20 +32,16 @@ public class ReportDisplay {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ReportDisplay buildReportDisplay(Context context, PackageManager manager, PackageInfo info) {
|
public static ReportDisplay buildReportDisplay(Context context, ApplicationViewModel model, PackageManager manager, PackageInfo info) {
|
||||||
ReportDisplay reportDisplay = new ReportDisplay();
|
ReportDisplay reportDisplay = new ReportDisplay();
|
||||||
reportDisplay.packageName = info.packageName;
|
reportDisplay.packageName = model.packageName;
|
||||||
reportDisplay.versionName = info.versionName;
|
reportDisplay.versionName = model.versionName;
|
||||||
reportDisplay.versionCode = info.versionCode;
|
reportDisplay.versionCode = model.versionCode;
|
||||||
reportDisplay.displayName = manager.getApplicationLabel(info.applicationInfo).toString();
|
reportDisplay.displayName = model.label.toString();
|
||||||
|
|
||||||
if(reportDisplay.versionName != null)
|
reportDisplay.report = model.report;
|
||||||
reportDisplay.report = DatabaseManager.getInstance(context).getReportFor(reportDisplay.packageName,reportDisplay.versionName);
|
|
||||||
else
|
|
||||||
reportDisplay.report = DatabaseManager.getInstance(context).getReportFor(reportDisplay.packageName, reportDisplay.versionCode);
|
|
||||||
|
|
||||||
if(reportDisplay.report != null)
|
reportDisplay.trackers = model.trackers;
|
||||||
reportDisplay.trackers = DatabaseManager.getInstance(context).getTrackers(reportDisplay.report.trackers);
|
|
||||||
|
|
||||||
if (reportDisplay.report != null)
|
if (reportDisplay.report != null)
|
||||||
reportDisplay.creator = DatabaseManager.getInstance(context).getCreator(reportDisplay.report.appId);
|
reportDisplay.creator = DatabaseManager.getInstance(context).getCreator(reportDisplay.report.appId);
|
||||||
@ -78,11 +75,7 @@ public class ReportDisplay {
|
|||||||
}
|
}
|
||||||
reportDisplay.permissions = requestedPermissions;
|
reportDisplay.permissions = requestedPermissions;
|
||||||
|
|
||||||
try {
|
reportDisplay.logo = model.icon;
|
||||||
reportDisplay.logo = manager.getApplicationIcon(reportDisplay.packageName);
|
|
||||||
} catch (PackageManager.NameNotFoundException e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return reportDisplay;
|
return reportDisplay;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user