content: package fuzion24.device.vulnerability.test;
  
  
  import android.net.Uri;
  
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.Map;
  
  public class ShareViaGoogleForm {
      private static final String mFormUrl;
      private static Map<String, String> submitMapping = new HashMap<>();
      private final JSONObject mCombinedResults;
  
      static {
          mFormUrl = "https://docs.google.com/forms/d/1hAoRFCmPmIEzKD_gQBZhne2Jkr24E5VTuI_yGXKnVyE/formResponse";
  
          submitMapping.put("fingerprint", "entry.957780611");
          submitMapping.put("kernelVersion", "entry.173229528");
          submitMapping.put("brand", "entry.1413588413");
          submitMapping.put("manufacturer", "entry.2048857005");
          submitMapping.put("model", "entry.2054096086");
          submitMapping.put("release", "entry.1474130928");
          submitMapping.put("sdk", "entry.1701379105");
          submitMapping.put("versionCode", "entry.275175001");
          submitMapping.put("versionName", "entry.506488905");
          submitMapping.put("id", "entry.218715471");
          submitMapping.put("combinedResults", "entry.2112177772");
  
      }
  
      public ShareViaGoogleForm(JSONObject combinedResults) {
          mCombinedResults = combinedResults;
      }
  
      public Uri buildUri() throws JSONException {
          JSONObject buildInfo = mCombinedResults.getJSONObject("buildInfo");
          Uri.Builder builder = Uri.parse(mFormUrl).buildUpon();
  
          Iterator<String> keys = buildInfo.keys();
          while (keys.hasNext()) {
              String curKey = keys.next();
              if (!submitMapping.containsKey(curKey)) {
                  continue;
              }
  
              String result = buildInfo.getString(curKey);
              String formKey = submitMapping.get(curKey);
              builder.appendQueryParameter(formKey, result);
          }
  
          // lastly put the JSON string as the combinedResults form value
          String combinedResultsFormKey = submitMapping.get("combinedResults");
          String results = mCombinedResults.toString();
          builder.appendQueryParameter(combinedResultsFormKey, results);
  
          return builder.build();
      }
  }
  