package com.aptoide.amethyst.dialogs;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.aptoide.amethyst.R;
import com.aptoide.dataprovider.webservices.models.v7.GetAppMeta;
import com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware;
import static com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware.PASSED;
import static com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware.TRUSTED;
import static com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware.UNKNOWN;
import static com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware.WARN;
import static com.aptoide.dataprovider.webservices.models.v7.GetAppMeta.File.Malware.WARNING;
/**
* Created by hsousa on 18/11/15.
*/
public class DialogBadgeV7 extends DialogFragment {
protected Malware malware;
protected String appName;
protected String status;
public static DialogBadgeV7 newInstance(Malware malware, String appName, String status) {
DialogBadgeV7 dialog = new DialogBadgeV7();
dialog.malware = malware;
dialog.appName = appName;
dialog.status = status;
return dialog;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Light);
} else {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Dialog);
}
setRetainInstance(true);
}
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
// getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@SuppressLint("InflateParams")
final View v = LayoutInflater.from(getActivity()).inflate(R.layout.layout_dialog_badge, null);
AlertDialog builder = new AlertDialog.Builder(getActivity()).setView(v).create();
v.findViewById(R.id.dialog_ok_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
if (malware != null && malware.rank != null) {
switch (malware.rank) {
case TRUSTED:
v.findViewById(R.id.trusted_header_layout).setVisibility(View.VISIBLE);
break;
case WARNING:
v.findViewById(R.id.warning_header_layout).setVisibility(View.VISIBLE);
break;
case UNKNOWN:
v.findViewById(R.id.unknown_header_layout).setVisibility(View.VISIBLE);
v.findViewById(R.id.tr_unknown).setVisibility(View.VISIBLE);
// Doesn't need to do more logic, exit.
return builder;
}
}
if (malware != null && malware.reason != null) {
if (malware.reason.scanned != null && malware.reason.scanned.status != null && (PASSED.equals(malware.reason.scanned.status) || WARN.equals(malware.reason.scanned.status))) {
if (malware.reason.scanned.avInfo != null) {
v.findViewById(R.id.tr_scanned).setVisibility(View.VISIBLE);
}
}
if (malware.reason.thirdpartyValidated != null && GetAppMeta.File.Malware.GOOGLE_PLAY.equalsIgnoreCase(malware.reason.thirdpartyValidated.store)) {
v.findViewById(R.id.tr_third_party).setVisibility(View.VISIBLE);
}
if (malware.reason.signatureValidated != null && malware.reason.signatureValidated.status != null) {
switch (malware.reason.signatureValidated.status) {
case PASSED:
v.findViewById(R.id.tr_signature).setVisibility(View.VISIBLE);
((TextView) v.findViewById(R.id.tv_reason_signature_validation)).setText(getString(R.string.reason_signature));
break;
case "failed":
// still in study by the UX team
v.findViewById(R.id.tr_signature).setVisibility(View.VISIBLE);
v.findViewById(R.id.iv_signature).setVisibility(View.INVISIBLE);
((TextView) v.findViewById(R.id.tv_reason_signature_validation)).setText(getString(R.string.reason_failed));
break;
case "blacklisted":
// still in study by the UX team
// v.findViewById(R.id.malware.reason_signature_not_validated).setVisibility(View.VISIBLE);
// ((TextView) v.findViewById(R.id.malware.reason_signature_not_validated)).setText(getString(R.string.application_signature_blacklisted));
break;
}
}
if (malware.reason.manualQA != null && malware.reason.manualQA.status != null && PASSED.equals(malware.reason.manualQA.status)) {
v.findViewById(R.id.tr_manual).setVisibility(View.VISIBLE);
}
}
return builder;
}
}