package com.wamod;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SwitchCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.whatsapp.ContactInfo;
import com.whatsapp.GroupChatInfo;
import com.whatsapp.protocol.a_;
import com.whatsapp.protocol.z;
import com.whatsapp.rv;
/**
* Created by brianvalente on 5/8/16.
*/
public class Privacy {
static boolean stringsDecoded = false;
public static boolean blueTick(z z, a_ a_, String str1, String str2, String[] str3, String str4) {
// Returns TRUE if the "Hide blue tick" option is DISABLED
log(a_, str1, str2, str3, str4);
String JabberID = a_.c;
boolean value = reportReadForSpecificContact(JabberID);
Log.i("WAMOD_PRIVACY", "Report read: Jabber ID: " + JabberID + " Value: " + value);
if (!value) {
str1 = str4;
if (reportReceivedForSpecificContact(JabberID)) z.a(a_, str1, str2, str3, str4);
return false;
} else return true;
}
private void callBlueTick() {
blueTick(null, null, null, null, null, null);
secondTick(null);
}
public static boolean hideTyping(String JabberID) {
// Returns TRUE if the "Hide typing" option is DISABLED
boolean value = reportTypingForSpecificContact(JabberID);
Log.i("WAMOD_PRIVACY", "Report typing: Jabber ID: " + JabberID + " Value: " + value);
return value;
}
public static boolean secondTick(a_ a_) {
// Returns TRUE if the "Hide second tick" option is DISABLED
String JabberID = a_.c;
boolean value = reportReceivedForSpecificContact(JabberID);
Log.i("WAMOD_PRIVACY", "Report received: Jabber ID: " + JabberID + " Value: " + value);
return value;
}
public static boolean generalReportReceived() {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean("general_reportreceived", true);
return bool;
}
public static boolean generalReportRead() {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean("general_reportread", true);
return bool;
}
public static boolean generalReportTyping() {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean("general_reporttyping", true);
return bool;
}
public static boolean customPrivacyForSpecificContact(String JabberID) {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean(JabberID, false);
return bool;
}
public static boolean reportReadForSpecificContact(String JabberID) {
if (!customPrivacyForSpecificContact(JabberID)) return generalReportRead();
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean(JabberID + "_reportread", true);
return bool;
}
public static boolean reportReceivedForSpecificContact(String JabberID) {
if (!customPrivacyForSpecificContact(JabberID)) return generalReportReceived();
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean(JabberID + "_reportreceived", true);
return bool;
}
public static boolean reportTypingForSpecificContact(String JabberID) {
if (!customPrivacyForSpecificContact(JabberID)) return generalReportTyping();
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
boolean bool = prefs.getBoolean(JabberID + "_reporttyping", true);
return bool;
}
public static void setCustomPrivacyForSpecificContact(String JabberID, boolean affected) {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean(JabberID, affected);
edit.apply();
}
public static void setReportReadForSpecificContact(String JabberID, boolean affected) {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean(JabberID + "_reportread", affected);
edit.apply();
}
public static void setReportReceivedForSpecificContact(String JabberID, boolean affected) {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean(JabberID + "_reportreceived", affected);
edit.apply();
}
public static void setReportTypingForSpecificContact(String JabberID, boolean affected) {
SharedPreferences prefs = Utils.context.getSharedPreferences("wamod_privacy", 0);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean(JabberID + "_reporttyping", affected);
edit.apply();
}
public static void initPrivacyOnChatInfo(final AppCompatActivity activity) {
// TODO: Fix this mess please
rv contact = null;
if (activity instanceof GroupChatInfo) contact = GroupChatInfo.getContact((GroupChatInfo) activity);
else if (activity instanceof ContactInfo) contact = ContactInfo.h((ContactInfo) activity);
if (contact == null) return;
final String JabberID = contact.v;
final ViewGroup wamod_privacy_card_customprivacy = (ViewGroup) activity.findViewById(Resources.getID("wamod_privacy_card_customprivacy"));
final TextView wamod_privacy_card_customprivacy_title = (TextView) activity.findViewById(Resources.getID("wamod_privacy_card_customprivacy_title"));
final TextView wamod_privacy_card_customprivacy_summary = (TextView) activity.findViewById(Resources.getID("wamod_privacy_card_customprivacy_summary"));
final SwitchCompat wamod_privacy_card_customprivacy_switch = (SwitchCompat) activity.findViewById(Resources.getID("wamod_privacy_card_customprivacy_switch"));
wamod_privacy_card_customprivacy.setBackgroundColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_CARD_BACKGROUND));
wamod_privacy_card_customprivacy_title.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_customprivacy_summary.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_SECONDARY));
wamod_privacy_card_customprivacy_switch.setChecked(customPrivacyForSpecificContact(JabberID));
wamod_privacy_card_customprivacy_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
Privacy.setCustomPrivacyForSpecificContact(JabberID, b);
}
});
wamod_privacy_card_customprivacy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final boolean reportreceived_original = reportReceivedForSpecificContact(JabberID);
final boolean reportread_original = reportReadForSpecificContact(JabberID);
final boolean reporttyping_original = reportTypingForSpecificContact(JabberID);
final boolean customprivacy_original = customPrivacyForSpecificContact(JabberID);
wamod_privacy_card_customprivacy_switch.setChecked(true);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(activity);
View view1 = LayoutInflater.from(activity).inflate(activity.getResources().getLayout(Resources.getLayout("wamod_privacy_individual_dialog")), null);
View wamod_privacy_card_reportreceived = view1.findViewById(Resources.getID("wamod_privacy_card_reportreceived"));
View wamod_privacy_card_reportread = view1.findViewById(Resources.getID("wamod_privacy_card_reportread"));
View wamod_privacy_card_reporttyping = view1.findViewById(Resources.getID("wamod_privacy_card_hidetyping"));
final SwitchCompat wamod_privacy_card_reportreceived_switch = (SwitchCompat) view1.findViewById(Resources.getID("wamod_privacy_card_reportreceived_switch"));
final SwitchCompat wamod_privacy_card_reportread_switch = (SwitchCompat) view1.findViewById(Resources.getID("wamod_privacy_card_reportread_switch"));
final SwitchCompat wamod_privacy_card_reporttyping_switch = (SwitchCompat) view1.findViewById(Resources.getID("wamod_privacy_card_hidetyping_switch"));
View wamod_privacy_card = view1.findViewById(Resources.getID("wamod_privacy"));
TextView wamod_privacy_card_reportreceived_title = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_reportreceived_title"));
TextView wamod_privacy_card_reportreceived_summary = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_reportreceived_summary"));
TextView wamod_privacy_card_reportread_title = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_reportread_title"));
TextView wamod_privacy_card_reportread_summary = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_reportread_summary"));
TextView wamod_privacy_card_hidetyping_title = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_hidetyping_title"));
TextView wamod_privacy_card_hidetyping_summary = (TextView) view1.findViewById(Resources.getID("wamod_privacy_card_hidetyping_summary"));
wamod_privacy_card.setBackgroundColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_BACKGROUND));
wamod_privacy_card_reportreceived_title.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_reportreceived_summary.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_reportread_title.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_reportread_summary.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_hidetyping_title.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_hidetyping_summary.setTextColor(ColorsManager.getColor(ColorsManager.UI_ACTIVITY_TEXT_PRIMARY));
wamod_privacy_card_reportreceived_switch.setChecked(reportreceived_original);
wamod_privacy_card_reportread_switch.setChecked(reportread_original);
wamod_privacy_card_reporttyping_switch.setChecked(reporttyping_original);
wamod_privacy_card_reportreceived.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wamod_privacy_card_reportreceived_switch.setChecked(!wamod_privacy_card_reportreceived_switch.isChecked());
}
});
wamod_privacy_card_reportread.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wamod_privacy_card_reportread_switch.setChecked(!wamod_privacy_card_reportread_switch.isChecked());
}
});
wamod_privacy_card_reporttyping.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wamod_privacy_card_reporttyping_switch.setChecked(!wamod_privacy_card_reporttyping_switch.isChecked());
}
});
wamod_privacy_card_reportreceived_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setReportReceivedForSpecificContact(JabberID, b);
}
});
wamod_privacy_card_reportread_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setReportReadForSpecificContact(JabberID, b);
}
});
wamod_privacy_card_reporttyping_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setReportTypingForSpecificContact(JabberID, b);
}
});
alertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
boolean reportreceivedChanged = reportreceived_original != reportReceivedForSpecificContact(JabberID);
boolean reportReadChanged = reportread_original != reportReadForSpecificContact(JabberID);
boolean reportTypingChanged = reporttyping_original != reportTypingForSpecificContact(JabberID);
if (!reportreceivedChanged && !reportReadChanged && !reportTypingChanged && !customprivacy_original) {
wamod_privacy_card_customprivacy_switch.setChecked(false);
}
}
});
alertDialog.setView(view1);
alertDialog.setTitle(activity.getResources().getString(Resources.getString("wamod_privacy_card_customprivacy_title")));
alertDialog.setPositiveButton(activity.getResources().getString(android.R.string.ok), null);
Dialog dialog = alertDialog.create();
dialog.show();
Utils.tintDialog(dialog);
}
});
}
/* Trash */
public static void log(a_ a_, String str1, String str2, String[] str3, String str4) {
int i = 1;
Log.i("WAMOD_PRIVACY_READ", "a: " + (a_.a? "true" : "false") + " -- b: " + a_.b + " -- c: " + a_.c);
Log.i("WAMOD_PRIVACY_READ", "1: " + str1 + " -- 2: " + str2 + " -- 4: " + str4);
if (str3 != null)
for (String s : str3) {
Log.i("WAMOD_PRIVACY_READ", i + ": " + s);
i++;
}
else Log.i("WAMOD_PRIVACY_READ", "String 3: NULL");
}
public static void logReceived(a_ a_, String str1, String str2, String[] str3, String str4) {
int i = 1;
Log.i("WAMOD_PRIVACY_RECEIVED", "a: " + (a_.a? "true" : "false") + " -- b: " + a_.b + " -- c: " + a_.c);
Log.i("WAMOD_PRIVACY_RECEIVED", "1: " + str1 + " -- 2: " + str2 + " -- 4: " + str4);
if (str3 != null)
for (String s : str3) {
Log.i("WAMOD_PRIVACY_RECEIVED", i + ": " + s);
i++;
}
}
}