package com.aptoide.amethyst.dialogs;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.util.Log;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import com.aptoide.amethyst.R;
import com.aptoide.amethyst.utils.AptoideUtils;
import com.aptoide.amethyst.utils.Logger;
/**
* Created by fabio on 17-11-2015.
*/
public class FlagApkDialog extends DialogFragment {
public enum Uservote {
good, license, fake, freeze, virus, novote;
}
public static final String USERVOTE_ARGUMENT_KEY = "uservote";
ApkFlagCallback flagApkCallback;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
flagApkCallback = (ApkFlagCallback) activity;
}
@Override
public void onDetach() {
super.onDetach();
flagApkCallback = null;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_flag_app, null);
AlertDialog builder = new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle(null)
.create();
if(getArguments() != null && getArguments().containsKey(FlagApkDialog.USERVOTE_ARGUMENT_KEY)) {
Logger.d("apkflag", "uservote: " + getArguments().getString(FlagApkDialog.USERVOTE_ARGUMENT_KEY));
Uservote uservote = Uservote.valueOf(getArguments().getString(FlagApkDialog.USERVOTE_ARGUMENT_KEY));
int uservoteButtonId = getButtonIdFromUservote(uservote);
if(uservoteButtonId != -1) {
((RadioButton) view.findViewById(uservoteButtonId)).setChecked(true);
}
}
view.findViewById(R.id.button_mark_flag).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (flagApkCallback != null) {
int checkedButtonId = ((RadioGroup) view.findViewById(R.id.flag_group)).getCheckedRadioButtonId();
if (checkedButtonId != -1) {
Log.d("apkflag", "flag: " + getUservoteFromButtonId(checkedButtonId).name());
flagApkCallback.addApkFlagClick(getUservoteFromButtonId(checkedButtonId).name());
dismiss();
}
}
}
});
return builder;
}
private static int getButtonIdFromUservote(Uservote uservote) {
switch (uservote) {
case good:
return R.id.button_good;
case license:
return R.id.button_license;
case fake:
return R.id.button_fake;
case freeze:
return R.id.button_freeze;
case virus:
return R.id.button_virus;
default:
return -1;
}
}
private static Uservote getUservoteFromButtonId(int buttonId) {
if (buttonId == R.id.button_good) {
return Uservote.good;
} else if (buttonId == R.id.button_license) {
return Uservote.license;
} else if (buttonId == R.id.button_fake) {
return Uservote.fake;
} else if (buttonId == R.id.button_freeze) {
return Uservote.freeze;
} else if (buttonId == R.id.button_virus) {
return Uservote.virus;
}
return Uservote.novote;
}
public interface ApkFlagCallback {
void addApkFlagClick(String flag);
}
}