package com.ikea.kompis.scan;

import android.content.Context;
import android.content.res.Resources;
import android.net.Uri;
import android.util.Patterns;
import com.ikea.shared.util.L;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ScanningServicesImpl
  implements ScanningServices
{
  private boolean isSafeUrl(String paramString, Context paramContext)
  {
    String str1 = paramString;
    if ((str1 == null) || (str1.trim().length() == 0) || (!Patterns.WEB_URL.matcher(str1).matches()));
    String str3;
    String str4;
    do
    {
      String str2;
      do
      {
        return false;
        if ((!str1.startsWith("http://")) && (!str1.startsWith("https://")))
          str1 = "http://" + str1;
        str2 = Uri.parse(str1).getHost();
      }
      while (str2 == null);
      String[] arrayOfString = paramContext.getResources().getStringArray(2131230722);
      StringBuilder localStringBuilder = new StringBuilder(arrayOfString[0]);
      for (int i = 1; i < arrayOfString.length; i++)
        localStringBuilder.append("|" + arrayOfString[i]);
      str3 = localStringBuilder.toString();
      L.I(" qrCodeHostMatchers " + str3);
      str4 = str2.toLowerCase(Locale.US);
    }
    while ((!str4.matches("^(" + str3 + ")\\b")) && (!str4.matches("^([\\da-z-]+)[.](" + str3 + ")\\b")));
    return true;
  }

  public void search(String paramString, ScanningServices.BarcodeSearchCallback paramBarcodeSearchCallback)
  {
  }

  public ScanningServices.ScanningResult validateTrackingValue(String paramString, Context paramContext)
  {
    if ((paramString.length() > 9) && (paramString.toLowerCase(Locale.US).startsWith("qr_code::")))
    {
      String str2 = paramString.substring(2 + paramString.trim().indexOf("::")).trim();
      if (!Patterns.WEB_URL.matcher(str2).matches())
        return new ScanningServices.ScanningResult(ScanningResultType.QR_CODE_GENERAL_VALUE, str2);
      if ((!str2.toLowerCase(Locale.US).startsWith("http://")) && (!str2.toLowerCase(Locale.US).startsWith("https://")))
        str2 = "http://" + str2;
      if (isSafeUrl(str2, paramContext));
      for (ScanningResultType localScanningResultType = ScanningResultType.QR_CODE_SAFE_URL; ; localScanningResultType = ScanningResultType.QR_CODE_UNSAFE_URL)
        return new ScanningServices.ScanningResult(localScanningResultType, str2);
    }
    if ((paramString.length() >= 10) && (Pattern.compile("\\d\\d\\d[.]\\d\\d\\d[.]\\d\\d").matcher(paramString.substring(0, 10)).matches()))
      return new ScanningServices.ScanningResult(ScanningResultType.BARCODE, paramString.substring(0, 10));
    if ((5 > paramString.length()) || ((!paramString.matches("^ITF[^:]*::[0-9]*$")) && (!paramString.matches("^EAN[^:]*::[0-9]{13}$"))))
      return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "UNKNOWN BARCODE: ABORT");
    String str1 = paramString.substring(2 + paramString.indexOf("::"));
    switch (str1.length())
    {
    default:
      return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "UNKNOWN BARCODE: ABORT");
    case 8:
      return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "ERROR_AS_IS");
    case 12:
      return new ScanningServices.ScanningResult(ScanningResultType.BARCODE, str1.substring(0, 8));
    case 13:
      return new ScanningServices.ScanningResult(ScanningResultType.BARCODE, str1.substring(1, 9));
    case 14:
      if (str1.indexOf("00000") == 0)
        return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "CUSTOMER ORDER: ABORT");
      switch (Integer.valueOf(str1.substring(-1 + str1.length())).intValue())
      {
      case 4:
      case 6:
      default:
        return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "UNKNOWN BARCODE: ABORT");
      case 0:
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 9:
        return new ScanningServices.ScanningResult(ScanningResultType.BARCODE, str1.substring(0, 8));
      case 2:
      }
      return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "MULTIPACK BARCODE: ABORT");
    case 19:
    case 24:
    }
    return new ScanningServices.ScanningResult(ScanningResultType.INVALID, "IKEA FAMILY CARD: ABORT");
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.ikea.kompis.scan.ScanningServicesImpl
 * JD-Core Version:    0.6.2
 */