179 lines
5.2 KiB
Java
179 lines
5.2 KiB
Java
package org.eu.exodus_privacy.exodusprivacy;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.view.View;
|
|
|
|
import androidx.databinding.BaseObservable;
|
|
import androidx.databinding.Bindable;
|
|
|
|
import org.eu.exodus_privacy.exodusprivacy.objects.Permission;
|
|
import org.eu.exodus_privacy.exodusprivacy.objects.ReportDisplay;
|
|
|
|
import java.text.DateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
public class ReportViewModel extends BaseObservable {
|
|
private ReportDisplay reportDisplay;
|
|
|
|
public void setReportDisplay(ReportDisplay report){
|
|
this.reportDisplay = report;
|
|
notifyChange();
|
|
}
|
|
|
|
@Bindable
|
|
public String getName() {
|
|
return reportDisplay.displayName;
|
|
}
|
|
|
|
@Bindable
|
|
public Drawable getLogo() {
|
|
return reportDisplay.logo;
|
|
}
|
|
|
|
|
|
public int getPermissionNumber() {
|
|
return reportDisplay.permissions != null ? reportDisplay.permissions.size() : 0;
|
|
}
|
|
|
|
@Bindable
|
|
public String getPermissionNumberStr() {
|
|
return String.valueOf(getPermissionNumber());
|
|
}
|
|
|
|
@Bindable
|
|
public int getPermissionColor() {
|
|
return getColor(getPermissionNumber());
|
|
}
|
|
|
|
@Bindable
|
|
public boolean getPermissionVisibility() {
|
|
return reportDisplay.permissions != null;
|
|
}
|
|
|
|
@Bindable
|
|
public boolean getHasPermissionDangerous() {
|
|
for(Permission perm : reportDisplay.permissions) {
|
|
if(perm.dangerous)
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public int getTrackerNumber() {
|
|
return reportDisplay.trackers != null ? reportDisplay.trackers.size() : 0;
|
|
}
|
|
|
|
@Bindable
|
|
public String getTrackerNumberStr() {
|
|
return String.valueOf(getTrackerNumber());
|
|
}
|
|
|
|
|
|
@Bindable
|
|
public boolean getTrackerVisibility() {
|
|
return reportDisplay.trackers != null;
|
|
}
|
|
|
|
@Bindable
|
|
public int getTrackerColor() {
|
|
return getColor(getTrackerNumber());
|
|
}
|
|
|
|
public String getCreator(Context context) {
|
|
String creator = reportDisplay.creator != null ? reportDisplay.creator : "";
|
|
if (reportDisplay.report != null && !reportDisplay.report.downloads.isEmpty()) {
|
|
String download = reportDisplay.report.downloads;
|
|
download = download.replace("downloads",context.getString(R.string.downloads));
|
|
creator += " (" + download + ")";
|
|
}
|
|
return creator;
|
|
}
|
|
|
|
@Bindable
|
|
public boolean getCreatorVisibility() {
|
|
return reportDisplay.creator != null && !reportDisplay.creator.isEmpty();
|
|
}
|
|
|
|
@Bindable
|
|
public String getInstalledVersion() {
|
|
return reportDisplay.versionName != null ? reportDisplay.versionName : String.valueOf(reportDisplay.versionCode);
|
|
}
|
|
|
|
@Bindable
|
|
public String getReportVersion() {
|
|
if(reportDisplay.report != null) {
|
|
if (reportDisplay.versionName != null && !reportDisplay.report.version.equals(reportDisplay.versionName)) {
|
|
return reportDisplay.report.version;
|
|
} else if (reportDisplay.versionName == null && reportDisplay.report.versionCode != reportDisplay.versionCode) {
|
|
return String.valueOf(reportDisplay.report.versionCode);
|
|
}
|
|
}
|
|
return "";
|
|
}
|
|
|
|
@Bindable
|
|
public boolean getReportVersionVisibility() {
|
|
return !getReportVersion().isEmpty();
|
|
}
|
|
|
|
@Bindable
|
|
public boolean getReportVisibility() {
|
|
return reportDisplay.report != null;
|
|
}
|
|
|
|
public String getReportDate(Context context) {
|
|
String reportDate = "";
|
|
if(reportDisplay.report == null)
|
|
return reportDate;
|
|
|
|
|
|
DateFormat dateFormat = SimpleDateFormat.getDateInstance(DateFormat.LONG);
|
|
reportDate = context.getString(R.string.created_date)+" "+dateFormat.format(reportDisplay.report.creationDate.getTime());
|
|
if (reportDisplay.report.creationDate.getTime().compareTo(reportDisplay.report.updateDate.getTime())!=0)
|
|
reportDate += " "+context.getString(R.string.and_updated)+" "+dateFormat.format(reportDisplay.report.updateDate.getTime())+".";
|
|
return reportDate;
|
|
}
|
|
|
|
public String getCodeSignatureInfo(Context context) {
|
|
if(reportDisplay.trackers != null && reportDisplay.trackers.size() > 0)
|
|
return context.getString(R.string.code_signature_found);
|
|
else if(reportDisplay.trackers != null)
|
|
return context.getString(R.string.code_signature_not_found);
|
|
else
|
|
return "";
|
|
}
|
|
|
|
public String getCodePermissionInfo(Context context) {
|
|
if(reportDisplay.permissions != null && reportDisplay.permissions.size() > 0)
|
|
return context.getString(R.string.code_permission_found);
|
|
else if(reportDisplay.permissions != null)
|
|
return context.getString(R.string.code_permission_not_found);
|
|
else
|
|
return "";
|
|
}
|
|
|
|
|
|
private int getColor(int number) {
|
|
if (number == 0)
|
|
return R.drawable.square_green;
|
|
else if(number < 5)
|
|
return R.drawable.square_light_yellow;
|
|
else
|
|
return R.drawable.square_light_red;
|
|
}
|
|
|
|
@Bindable
|
|
public String getSource() {
|
|
return reportDisplay.source;
|
|
}
|
|
|
|
public String getViewOnStore() {
|
|
return reportDisplay.viewOnStore;
|
|
}
|
|
|
|
|
|
|
|
}
|