package com.wamod.themes.QTS; import android.app.ProgressDialog; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.Toast; import com.wamod.Resources; import com.wamod.Utils; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.LinkedHashMap; import java.util.Map; /** * Created by brianvalente on 12/19/15. */ public class Upload extends AsyncTask<Void, Void, Void> { String internalResponse = ""; public static AppCompatActivity activity; ProgressDialog progress; boolean official = false; @Override protected Void doInBackground(Void... voids) { if (!official) return null; try { URL url = new URL("http://wamod.ml/api/api.php"); Map<String, Object> params = new LinkedHashMap<>(); params.put("action", "qts_upload"); // Get actual theme config ;_; // General colors params.put("general_statusbarcolor", Utils.prefs.getString("general_statusbarcolor", "")); params.put("general_toolbarcolor", Utils.prefs.getString("general_toolbarcolor", "")); params.put("general_toolbartextcolor", Utils.prefs.getString("general_toolbartextcolor", "")); params.put("general_toolbarforeground", Utils.prefs.getString("general_toolbarforeground", "")); params.put("general_navbarcolor", Utils.prefs.getString("general_navbarcolor", "")); params.put("general_darkstatusbaricons", Utils.parseBooleanToJson(Utils.prefs.getBoolean("general_darkstatusbaricons", false))); params.put("nightmode_enable", Utils.parseBooleanToJson(Utils.prefs.getBoolean("nightmode_enable", false))); params.put("nightmode_atnightonly", Utils.parseBooleanToJson(Utils.prefs.getBoolean("nightmode_atnightonly", false))); // Home params.put("home_theme", Utils.prefs.getString("home_theme", "")); params.put("home_drawer_header_style", Utils.prefs.getString("home_drawer_header_style", "")); params.put("home_tabsindicatorcolor", Utils.prefs.getString("home_tabsindicatorcolor", "")); params.put("home_drawer_dark", Utils.parseBooleanToJson(Utils.prefs.getBoolean("home_drawer_dark", false))); params.put("home_drawer_blackheadertext", Utils.parseBooleanToJson(Utils.prefs.getBoolean("home_drawer_blackheadertext", false))); params.put("home_drawer_showsecondaccount", Utils.parseBooleanToJson(Utils.prefs.getBoolean("home_drawer_showsecondaccount", false))); params.put("home_bottomnavigationbar_autocolor", Utils.parseBooleanToJson(Utils.prefs.getBoolean("home_bottomnavigationbar_autocolor", false))); params.put("home_bottomnavigationbar_colors_bg", Utils.prefs.getString("home_bottomnavigationbar_colors_bg", "")); params.put("home_bottomnavigationbar_colors_activeitem", Utils.prefs.getString("home_bottomnavigationbar_colors_activeitem", "")); params.put("home_bottomnavigationbar_colors_inactiveitem", Utils.prefs.getString("home_bottomnavigationbar_colors_inactiveitem", "")); // Conversation params.put("conversation_style_toolbar", Utils.prefs.getString("conversation_style_toolbar", "")); params.put("conversation_hideprofilephoto", Utils.parseBooleanToJson(Utils.prefs.getBoolean("conversation_hideprofilephoto", false))); params.put("conversation_hidetoolbarattach", Utils.parseBooleanToJson(Utils.prefs.getBoolean("conversation_hidetoolbarattach", false))); params.put("conversation_toolbarexit", Utils.parseBooleanToJson(Utils.prefs.getBoolean("conversation_toolbarexit", false))); params.put("conversation_rightbubblecolor", Utils.prefs.getString("conversation_rightbubblecolor", "")); params.put("conversation_rightbubbletextcolor", Utils.prefs.getString("conversation_rightbubbletextcolor", "")); params.put("conversation_rightbubbledatecolor", Utils.prefs.getString("conversation_rightbubbledatecolor", "")); params.put("conversation_leftbubblecolor", Utils.prefs.getString("conversation_leftbubblecolor", "")); params.put("conversation_leftbubbletextcolor", Utils.prefs.getString("conversation_leftbubbletextcolor", "")); params.put("conversation_leftbubbledatecolor", Utils.prefs.getString("conversation_leftbubbledatecolor", "")); params.put("conversation_customparticipantcolorbool", Utils.parseBooleanToJson(Utils.prefs.getBoolean("conversation_customparticipantcolorbool", false))); params.put("conversation_customparticipantcolor", Utils.prefs.getString("conversation_customparticipantcolor", "")); params.put("conversation_custombackcolorbool", Utils.parseBooleanToJson(Utils.prefs.getBoolean("conversation_custombackcolorbool", false))); params.put("conversation_custombackcolor", Utils.prefs.getString("conversation_custombackcolor", "")); params.put("conversation_style_bubble", Utils.prefs.getString("conversation_style_bubble", "")); params.put("conversation_style_tick", Utils.prefs.getString("conversation_style_tick", "")); params.put("conversation_style_entry", Utils.prefs.getString("conversation_style_entry", "")); // Advanced params.put("nightmode_primarytextcolor", Utils.prefs.getString("nightmode_primarytextcolor", "")); params.put("nightmode_secondarytextcolor", Utils.prefs.getString("nightmode_secondarytextcolor", "")); params.put("nightmode_backgroundcolor", Utils.prefs.getString("nightmode_backgroundcolor", "")); params.put("nightmode_cardsbackgroundcolor", Utils.prefs.getString("nightmode_cardsbackgroundcolor", "")); params.put("drawer_light_background", Utils.prefs.getString("drawer_light_background", "")); params.put("drawer_dark_background", Utils.prefs.getString("drawer_dark_background", "")); // WAMOD params.put("theme_wamod_conversation_entry_bgcolor", Utils.prefs.getString("theme_wamod_conversation_entry_bgcolor", "")); params.put("theme_wamod_conversation_entry_entrybgcolor", Utils.prefs.getString("theme_wamod_conversation_entry_entrybgcolor", "")); params.put("theme_wamod_conversation_entry_hinttextcolor", Utils.prefs.getString("theme_wamod_conversation_entry_hinttextcolor", "")); params.put("theme_wamod_conversation_entry_textcolor", Utils.prefs.getString("theme_wamod_conversation_entry_textcolor", "")); params.put("theme_wamod_conversation_entry_emojibtncolor", Utils.prefs.getString("theme_wamod_conversation_entry_emojibtncolor", "")); params.put("theme_wamod_conversation_entry_btncolor", Utils.prefs.getString("theme_wamod_conversation_entry_btncolor", "")); params.put("theme_wamod_conversation_entry_sendbtncolor", Utils.prefs.getString("theme_wamod_conversation_entry_sendbtncolor", "")); // Hangouts params.put("theme_hangouts_conversation_entry_bgcolor", Utils.prefs.getString("theme_hangouts_conversation_entry_bgcolor", "")); params.put("theme_hangouts_conversation_entry_hintcolor", Utils.prefs.getString("theme_hangouts_conversation_entry_hintcolor", "")); params.put("theme_hangouts_conversation_entry_textcolor", Utils.prefs.getString("theme_hangouts_conversation_entry_textcolor", "")); params.put("theme_hangouts_conversation_attach_color", Utils.prefs.getString("theme_hangouts_conversation_attach_color", "")); params.put("theme_hangouts_conversation_mic_bg", Utils.prefs.getString("theme_hangouts_conversation_mic_bg", "")); params.put("theme_hangouts_conversation_mic_color", Utils.prefs.getString("theme_hangouts_conversation_mic_color", "")); params.put("theme_hangouts_conversation_send_bg", Utils.prefs.getString("theme_hangouts_conversation_send_bg", "")); params.put("theme_hangouts_conversation_send_color", Utils.prefs.getString("theme_hangouts_conversation_send_color", "")); // Simple params.put("theme_simple_conversation_bgcolor", Utils.prefs.getString("theme_simple_conversation_bgcolor", "")); params.put("theme_simple_conversation_entry_hintcolor", Utils.prefs.getString("theme_simple_conversation_entry_hintcolor", "")); params.put("theme_simple_conversation_entry_textcolor", Utils.prefs.getString("theme_simple_conversation_entry_textcolor", "")); params.put("theme_simple_conversation_mic_color", Utils.prefs.getString("theme_simple_conversation_mic_color", "")); params.put("theme_simple_conversation_send_color", Utils.prefs.getString("theme_simple_conversation_send_color", "")); // Mood params.put("theme_mood_conversation_background_color", Utils.prefs.getString("theme_mood_conversation_background_color", "")); params.put("theme_mood_conversation_entry_hintcolor", Utils.prefs.getString("theme_mood_conversation_entry_hintcolor", "")); params.put("theme_mood_conversation_entry_textcolor", Utils.prefs.getString("theme_mood_conversation_entry_textcolor", "")); params.put("theme_mood_conversation_mic_color", Utils.prefs.getString("theme_mood_conversation_mic_color", "")); params.put("theme_mood_conversation_send_color", Utils.prefs.getString("theme_mood_conversation_send_color", "")); params.put("theme_mood_conversation_emoji_color", Utils.prefs.getString("theme_mood_conversation_emoji_color", "")); // Aran params.put("theme_aran_conversation_bgcolor", Utils.prefs.getString("theme_aran_conversation_bgcolor", "")); params.put("theme_aran_conversation_entry_bgcolor", Utils.prefs.getString("theme_aran_conversation_entry_bgcolor", "")); params.put("theme_aran_conversation_entry_hintcolor", Utils.prefs.getString("theme_aran_conversation_entry_hintcolor", "")); params.put("theme_aran_conversation_entry_textcolor", Utils.prefs.getString("theme_aran_conversation_entry_textcolor", "")); params.put("theme_aran_conversation_emoji_color", Utils.prefs.getString("theme_aran_conversation_emoji_color", "")); params.put("theme_aran_conversation_mic_color", Utils.prefs.getString("theme_aran_conversation_mic_color", "")); params.put("theme_aran_conversation_send_color", Utils.prefs.getString("theme_aran_conversation_send_color", "")); StringBuilder postData = new StringBuilder(); for (Map.Entry<String,Object> param : params.entrySet()) { if (postData.length() != 0) postData.append('&'); postData.append(URLEncoder.encode(param.getKey(), "UTF-8")); postData.append('='); postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8")); } byte[] postDataBytes = postData.toString().getBytes("UTF-8"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length)); conn.setDoOutput(true); conn.getOutputStream().write(postDataBytes); internalResponse = Utils.readStream(conn.getInputStream()); } catch (IOException e) {} return null; } @Override protected void onPostExecute(Void v) { /* Commented for now l if (!official) { Toast.makeText(activity, "Please install official WAMOD to use this feature.", Toast.LENGTH_LONG).show(); return; }*/ Log.i("WAMOD", "Server response: " + internalResponse); progress.dismiss(); try { JSONObject jObj = new JSONObject(internalResponse); String themeID = jObj.getString("theme_id"); Utils.copyToClipboard(themeID); Toast.makeText(activity, Utils.context.getResources().getString(Resources.string.wamod_qts_upload_success, themeID), Toast.LENGTH_LONG).show(); } catch (JSONException e) { Toast.makeText(activity, Utils.context.getResources().getString(Resources.string.wamod_error), Toast.LENGTH_LONG).show(); } } @Override protected void onPreExecute() { progress = ProgressDialog.show(activity, activity.getResources().getString(Resources.getString("wamod_loading")), "", true); try { Signature sign = Utils.context.getPackageManager().getPackageInfo(Utils.context.getPackageName(), PackageManager.GET_SIGNATURES).signatures[0]; if (sign.hashCode() == -282729318) official = true; } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException(e); } } }