[
  {
    "code": "_fab.%s();",
    "color": "#4A6CD4",
    "name": "fabVisibility",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "FAB setVisibility %m.fabvisible",
    "spec2": ""
  },
  {
    "code": "try{\n%s\n}catch(Exception e){\n%s\n}",
    "color": "#5E35B1",
    "name": "tryCatch",
    "typeName": "",
    "palette": "240",
    "type": "e",
    "spec": "Try",
    "spec2": "Cat"
  },
  {
    "code": "new UploadFile().execute(%1$s);",
    "color": "#6ABDCF",
    "name": "start_upload",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "Start Upload with path %s (*dont use in more block*)",
    "spec2": ""
  },
  {
    "code": "RecyclerView.LayoutParams _lp \u003d new RecyclerView.LayoutParams(ViewGroup.LayoutParams.%s, ViewGroup.LayoutParams.%s);\n_view.setLayoutParams(_lp);",
    "color": "#4A6CD4",
    "name": "setRecyclerViewLayoutParams",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "set RecyclerViewLayoutParams width %m.LayoutParam height %m.LayoutParam",
    "spec2": ""
  },
  {
    "code": "%s.setBackground(new GradientDrawable() { public GradientDrawable getIns(int a, int b, int c, int d) { this.setCornerRadius(a); this.setStroke(b, c); this.setColor(d); return this; } }.getIns((int)%s, (int)%s, %s, %s));",
    "color": "#4A6CD4",
    "name": "setRadiusAndStrokeView",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.view setCornerRadius %d stroke %d strokeColor %m.color bgColor %m.color",
    "spec2": ""
  },
  {
    "code": "%s.setElevation((float)%s);",
    "color": "#4A6CD4",
    "name": "setElevation",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.view setElevation %d",
    "spec2": ""
  },
  {
    "code": "}\npublic class UploadFile extends AsyncTask\u003cString, Integer, String\u003e {\n@Override\n%1$s\n}\n{",
    "color": "#6ABDCF",
    "name": "setting_up_upload",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "Upload Service ↓ (for moreBlock) ↓",
    "spec2": ""
  },
  {
    "code": "@Override protected void onPreExecute() {\n%1$s\n}",
    "imports": "",
    "color": "#6ABDCF",
    "name": "on_upload_start",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "On Upload Start (put it into Upload Service Block)",
    "spec2": ""
  },
  {
    "code": "%s \u003d new ProgressDialog(%s.this);",
    "color": "#29A7E4",
    "name": "progressdialogCreate",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.progressdialog Create in %m.activity",
    "spec2": ""
  },
  {
    "code": "%s.setMessage(%s);",
    "color": "#2AA4E2",
    "name": "progressdialogSetMessage",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.progressdialog setMessage %s",
    "spec2": ""
  },
  {
    "code": "%s.setCancelable(%s);",
    "color": "#2AA4E2",
    "name": "progressdialogSetCancelable",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.progressdialog setCancelable %b",
    "spec2": ""
  },
  {
    "code": "%s.show();",
    "color": "#2AA4E2",
    "name": "progressdialogShow",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.progressdialog show",
    "spec2": ""
  },
  {
    "code": "@Override protected void onPostExecute(String result) {\n%1$s\n}\n@Override protected void onProgressUpdate(Integer... values) {\n}",
    "color": "#6ABDCF",
    "name": "on_upload_finish",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "On Upload Finish (put it into Upload Service Block)",
    "spec2": ""
  },
  {
    "code": "if (result.equals(\"invalid_token\")) {\r\n %1$s\r\n}\r\nelse {\r\n %2$s\r\n}",
    "color": "#F44336",
    "name": "اگر_توکن_اشتباه_بودچ",
    "typeName": "",
    "palette": "240",
    "type": "e",
    "spec": "if token \u003c invalid\u003e ↓",
    "spec2": "else"
  },
  {
    "code": "%s.dismiss();",
    "color": "#2AA4E2",
    "name": "progressdialogDismiss",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.progressdialog dismiss",
    "spec2": ""
  },
  {
    "code": "if (result.equals(\"invalid_size\")) {\r\n %1$s\r\n}\r\nelse {\r\n %2$s\r\n}",
    "color": "#F44336",
    "name": "اگر_حجم_فایل_بیشتر_از_حد_مجاز_بود",
    "typeName": "",
    "palette": "240",
    "type": "e",
    "spec": "if invalid \u003c file size \u003e ↓",
    "spec2": "else"
  },
  {
    "code": "if (result.equals(\"invalid_format\")) {\r\n %1$s\r\n}\r\nelse {\r\n %2$s\r\n}",
    "color": "#F44336",
    "name": "اگر_فرمت_فایل_مجاز_نبود",
    "typeName": "",
    "palette": "240",
    "type": "e",
    "spec": "if format \u003c invalid\u003e ↓",
    "spec2": "else"
  },
  {
    "code": "if (result.contains(\"https://\") || result.contains(\"http://\")) {\r\n\t%1$s\r\n}",
    "color": "#64DD17",
    "name": "اگر_آپلود_شده_بود",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "if upload complete ↓",
    "spec2": "اگر نه"
  },
  {
    "code": "result",
    "color": "#E91E63",
    "name": "Result",
    "typeName": "",
    "palette": "240",
    "type": "s",
    "spec": "get \u003c\u003c response \u003e\u003e",
    "spec2": ""
  },
  {
    "code": "%s.setBackground(new GradientDrawable() { public GradientDrawable getIns(int a, int b) { this.setCornerRadius(a); this.setColor(b); return this; } }.getIns((int)%s, %s));",
    "color": "#4A6CD4",
    "name": "setCornerRadiusView",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.view setCornerRadius %d color %m.color",
    "spec2": ""
  },
  {
    "code": "getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);\r\ngetWindow().setStatusBarColor(0xFFFFFFFF);",
    "color": "#2AA4E2",
    "name": "LightStatusBar",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "LightStatusBar",
    "spec2": ""
  },
  {
    "code": "%s.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL, false));",
    "color": "#4A6CD4",
    "name": "recyclerSetLayoutManagerHorizontal",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.recyclerview set Horizontal LayoutManager",
    "spec2": ""
  },
  {
    "code": "%s",
    "color": "#5CB722",
    "name": "asdString",
    "typeName": "",
    "palette": "240",
    "type": "s",
    "spec": "string %s.inputOnly",
    "spec2": ""
  },
  {
    "code": "%s.performClick();",
    "color": "#4A6CD4",
    "name": "performClick",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.view performClick",
    "spec2": ""
  },
  {
    "code": "",
    "color": "#4A6CD4",
    "name": "recyclerSetCustomViewData",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.recyclerview setRecyclerCustomViewData %m.listMap",
    "spec2": ""
  },
  {
    "code": "  try {\n  %1$s\n  } catch (java.security.GeneralSecurityException e){\n      showMessage(\"password incorrect !\" + \"\\n\" + e.toString());\n  }",
    "color": "#FF9800",
    "name": "Block try for the encryptDecrypt last blcoks workp",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "last Blocks need this Try to Do {",
    "spec2": ""
  },
  {
    "code": "AESCrypt.decrypt(%2$s, %1$s)",
    "color": "#FF9800",
    "name": "to Decrypt Many Textsp",
    "typeName": "",
    "palette": "240",
    "type": "s",
    "spec": "رمزگشایی %s پسوورد با %s ",
    "spec2": ""
  },
  {
    "code": "(ArrayList\u003cHashMap\u003cString,Object\u003e\u003e)%s.get(%s)",
    "color": "#EE7D15",
    "name": "hashmapGetListmap",
    "typeName": "List Map",
    "palette": "240",
    "type": "l",
    "spec": "%m.varMap get List Map key %s",
    "spec2": ""
  },
  {
    "code": "",
    "color": "#4A6CD4",
    "name": "pagerSetCustomViewData",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.viewpager setPagerCustomViewData %m.listMap",
    "spec2": ""
  },
  {
    "code": "%s.setHasFixedSize(%s);",
    "color": "#4A6CD4",
    "name": "recyclerSetHasFixedSize",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.recyclerview setHasFixedSize %b",
    "spec2": ""
  },
  {
    "code": "%s",
    "color": "#E91E63",
    "name": "asdBoolean",
    "typeName": "",
    "palette": "240",
    "type": "b",
    "spec": "boolean %s.inputOnly",
    "spec2": ""
  },
  {
    "code": "Animation animation \u003d AnimationUtils.loadAnimation(%2$s.this, R.anim.%3$s);\n%1$s.startAnimation(animation);\nint targetPosition \u003d %1$s.getAdapter().getItemCount() - 1;\n%1$s.scrollToPosition(targetPosition);",
    "color": "#6ABDCF",
    "name": "quickScrollToPosition",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "ScrollToLast Recycler %m.recyclerview Activity %m.activity  Anim %m.anim ",
    "spec2": ""
  },
  {
    "code": "%s.smoothScrollToPosition((int)%s);",
    "color": "#4A6CD4",
    "name": "recyclerSmoothScrollToPosition",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.recyclerview smoothScrollToPosition %d",
    "spec2": ""
  },
  {
    "code": "%s.setTextSize((int)%s);",
    "color": "#4A6CD4",
    "name": "setTextSize",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.textview setTextSize %d",
    "spec2": ""
  },
  {
    "code": "import %s;",
    "color": "#EE7D15",
    "name": "customImport",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "import %s.inputOnly",
    "spec2": ""
  },
  {
    "code": "}\npublic static final class AESCrypt {\n    private static final String TAG \u003d \"AESCrypt\";\n    private static final String AES_MODE \u003d \"AES/CBC/PKCS7Padding\";\n    private static final String CHARSET \u003d \"UTF-8\";\n    private static final String HASH_ALGORITHM \u003d \"SHA-256\";\n    private static final byte[] ivBytes \u003d {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};\n    public static boolean DEBUG_LOG_ENABLED \u003d false;\n    private static javax.crypto.spec.SecretKeySpec generateKey(final String password) throws java.security.NoSuchAlgorithmException, java.io.UnsupportedEncodingException {\n        final java.security.MessageDigest digest \u003d java.security.MessageDigest.getInstance(HASH_ALGORITHM);\n        byte[] bytes \u003d password.getBytes(\"UTF-8\");\n        digest.update(bytes, 0, bytes.length);\n        byte[] key \u003d digest.digest();\n        log(\"SHA-256 key \", key);\n        javax.crypto.spec.SecretKeySpec secretKeySpec \u003d new javax.crypto.spec.SecretKeySpec(key, \"AES\");\n        return secretKeySpec;\n    }\n    public static String encrypt(final String password, String message)\n            throws java.security.GeneralSecurityException {\n        try {\n            final javax.crypto.spec.SecretKeySpec key \u003d generateKey(password);\n            log(\"message\", message);\n            byte[] cipherText \u003d encrypt(key, ivBytes, message.getBytes(CHARSET));\n            String encoded \u003d android.util.Base64.encodeToString(cipherText, android.util.Base64.NO_WRAP);\n            log(\"Base64.NO_WRAP\", encoded);\n            return encoded;\n        } catch (java.io.UnsupportedEncodingException e) {\n            if (DEBUG_LOG_ENABLED)\n                android.util.Log.e(TAG, \"UnsupportedEncodingException \", e);\n            throw new java.security.GeneralSecurityException(e);\n        }\n    }\n    public static byte[] encrypt(final javax.crypto.spec.SecretKeySpec key, final byte[] iv, final byte[] message)\n            throws java.security.GeneralSecurityException {\n        final javax.crypto.Cipher cipher \u003d javax.crypto.Cipher.getInstance(AES_MODE);\n        javax.crypto.spec.IvParameterSpec ivSpec \u003d new javax.crypto.spec.IvParameterSpec(iv);\n        cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, key, ivSpec);\n        byte[] cipherText \u003d cipher.doFinal(message);\n        log(\"cipherText\", cipherText);\n        return cipherText;\n    }\n    public static String decrypt(final String password, String base64EncodedCipherText)\n            throws java.security.GeneralSecurityException {\n        try {\n            final javax.crypto.spec.SecretKeySpec key \u003d generateKey(password);\n            log(\"base64EncodedCipherText\", base64EncodedCipherText);\n            byte[] decodedCipherText \u003d android.util.Base64.decode(base64EncodedCipherText, android.util.Base64.NO_WRAP);\n            log(\"decodedCipherText\", decodedCipherText);\n            byte[] decryptedBytes \u003d decrypt(key, ivBytes, decodedCipherText);\n            log(\"decryptedBytes\", decryptedBytes);\n            String message \u003d new String(decryptedBytes, CHARSET);\n            log(\"message\", message);\n            return message;\n        } catch (java.io.UnsupportedEncodingException e) {\n            if (DEBUG_LOG_ENABLED)\n                android.util.Log.e(TAG, \"UnsupportedEncodingException \", e);\n            throw new java.security.GeneralSecurityException(e);\n        }\n    }\n    public static byte[] decrypt(final javax.crypto.spec.SecretKeySpec key, final byte[] iv, final byte[] decodedCipherText)\n            throws java.security.GeneralSecurityException {\n            final javax.crypto.Cipher cipher \u003d javax.crypto.Cipher.getInstance(AES_MODE);\n            javax.crypto.spec.IvParameterSpec ivSpec \u003d new javax.crypto.spec.IvParameterSpec(iv);\n            cipher.init(javax.crypto.Cipher.DECRYPT_MODE, key, ivSpec);\n            byte[] decryptedBytes \u003d cipher.doFinal(decodedCipherText);\n            log(\"decryptedBytes\", decryptedBytes);\n            return decryptedBytes;\n    }\n    private static void log(String what, byte[] bytes) {\n        if (DEBUG_LOG_ENABLED)\n            android.util.Log.d(TAG, what + \"[\" + bytes.length + \"] [\" + bytesToHex(bytes) + \"]\");\n    }\n    private static void log(String what, String value) {\n        if (DEBUG_LOG_ENABLED)\n            android.util.Log.d(TAG, what + \"[\" + value.length() + \"] [\" + value + \"]\");\n    }\n    private static String bytesToHex(byte[] bytes) {\n        final char[] hexArray \u003d {\u00270\u0027, \u00271\u0027, \u00272\u0027, \u00273\u0027, \u00274\u0027, \u00275\u0027, \u00276\u0027, \u00277\u0027, \u00278\u0027,\n                \u00279\u0027, \u0027A\u0027, \u0027B\u0027, \u0027C\u0027, \u0027D\u0027, \u0027E\u0027, \u0027F\u0027};\n        char[] hexChars \u003d new char[bytes.length * 2];\n        int v;\n        for (int j \u003d 0; j \u003c bytes.length; j++) {\n            v \u003d bytes[j] \u0026 0xFF;\n            hexChars[j * 2] \u003d hexArray[v \u003e\u003e\u003e 4];\n            hexChars[j * 2 + 1] \u003d hexArray[v \u0026 0x0F];\n        }\n        return new String(hexChars);\n    }\n    private AESCrypt() {\n    }\n}\nprivate String cryptedOutput;\nprivate String decryptedOutput; \n\npublic void encryptText(String text, String key){\n  \ntry {    \t\n cryptedOutput \u003d  AESCrypt.encrypt(key, text);\n}catch (java.security.GeneralSecurityException e){\n\tshowMessage(\"password not correct !\" + \"\\n\" + e.toString());\n}\n}\n\npublic void decryptCode(String code, String key){\n  \n  try {\n  decryptedOutput \u003d\tAESCrypt.decrypt(key, code);\n  } catch (java.security.GeneralSecurityException e){\n      showMessage(\"password incorrect !\" + \"\\n\" + e.toString());\n  }\n}\n{",
    "color": "#FF9800",
    "name": "Encrypt Decrypt First Blocko",
    "typeName": "بلوک اول » برای مور بلوک",
    "palette": "240",
    "type": " ",
    "spec": "بلوک مور برای » اول بلوک",
    "spec2": ""
  },
  {
    "code": "%s.setCurrentItem((int)%s);",
    "color": "#4A6CD4",
    "name": "pagerSetCurrentItem",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.viewpager setCurrentItem %d",
    "spec2": ""
  },
  {
    "code": "%s.setCardBackgroundColor(%s);",
    "color": "#4A6CD4",
    "name": "setCardBackgroundColor",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.cardview setCardBackgroundColor %m.color",
    "spec2": ""
  },
  {
    "code": "%s.setOnLongClickListener(new View.OnLongClickListener() {\r\n@Override\r\npublic boolean onLongClick(View _view) {\r\n%s\r\nreturn true;\r\n}\r\n});",
    "color": "#4A6CD4",
    "name": "viewOnLongClick",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "When %m.view long clicked",
    "spec2": ""
  },
  {
    "code": "final com.google.android.material.bottomsheet.BottomSheetDialog %1$sD \u003d new com.google.android.material.bottomsheet.BottomSheetDialog(%3$s.this);\nView %1$sV;\n%1$sV \u003d getLayoutInflater().inflate(R.layout.%2$s,null );\n%1$sD.setContentView(%1$sV);",
    "color": "#039BE5",
    "name": "BottomSheetView",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet set view from custom view %m.customViews in %m.activity",
    "spec2": ""
  },
  {
    "code": "%1$sD.getWindow().findViewById(R.id.%2$s).setBackgroundResource(android.R.color.transparent);",
    "color": "#039BE5",
    "name": "BottomSheetDialog",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet set dialog design from widget ID %s.inputOnly from custom view",
    "spec2": ""
  },
  {
    "code": "LinearLayout %2$s \u003d (LinearLayout) %1$sV.findViewById(R.id.%2$s\n);",
    "color": "#039BE5",
    "name": "BottomSheetSetLinear",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet set linear background with ID %s.inputOnly from custom view",
    "spec2": ""
  },
  {
    "code": "final %2$s %3$s \u003d (%2$s) %1$sV.findViewById(R.id.%4$s);",
    "color": "#039BE5",
    "name": "add view",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet add view type %m.typeview with ID %s.inputOnly from ID %s.inputOnly in custom view",
    "spec2": ""
  },
  {
    "code": "%1$sD.setCancelable(%2$s);",
    "color": "#039BE5",
    "name": "cancelable !",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet set cancelable %b",
    "spec2": ""
  },
  {
    "code": "%1$sD.dismiss();",
    "color": "#039BE5",
    "name": "BottomSheet",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet Dismiss",
    "spec2": ""
  },
  {
    "code": "final AlertDialog %1$s \u003d new AlertDialog.Builder(%3$s.this).create();\nLayoutInflater %1$sLI \u003d getLayoutInflater();\nView %1$sCV \u003d (View) %1$sLI.inflate(R.layout.%2$s, null);\n%1$s.setView(%1$sCV);",
    "color": "#00BCD4",
    "name": "Create Custom Dialog",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "create %m.CustomDialog From %m.customViews into %m.activity",
    "spec2": ""
  },
  {
    "code": "final %3$s %2$s \u003d (%3$s)\n%1$sCV.findViewById(R.id.%4$s);",
    "color": "#00BCD4",
    "name": "Create View ",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomDialog Create View with ID %s.inputOnly with type %m.typeview from ID %s.inputOnly From The Custom View ",
    "spec2": ""
  },
  {
    "code": "%1$s.setCancelable(%2$s);",
    "color": "#00BCD4",
    "name": "Set Cancelable",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomDialog Set Cancelable %b",
    "spec2": ""
  },
  {
    "code": "%1$s.getWindow().setBackgroundDrawable(new ColorDrawable(%2$s));",
    "color": "#00BCD4",
    "name": "set color",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomDialog set color %m.color",
    "spec2": ""
  },
  {
    "code": "%1$s.setOnClickListener(new View.OnClickListener(){\n@Override\npublic void onClick(View _view){\n%2$s\n}\n});",
    "color": "#8E24AA",
    "name": "setOnClickListener",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "When %m.view On Clicked",
    "spec2": ""
  },
  {
    "code": "%1$s.dismiss();",
    "color": "#00BCD4",
    "name": "dismiss",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomDialog Dismiss",
    "spec2": ""
  },
  {
    "code": "%1$s.show();",
    "color": "#00BCD4",
    "name": "Show Dialog",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomDialog Show",
    "spec2": ""
  },
  {
    "code": "%1$sD.show();",
    "color": "#039BE5",
    "name": "Show",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.BottomSheet show dialog",
    "spec2": ""
  },
  {
    "code": "Intent jjjjjjjjjjjhhhggfff \u003d new Intent();\njjjjjjjjjjjhhhggfff.setAction(Intent.ACTION_VIEW);\n jjjjjjjjjjjhhhggfff.setData(Uri.parse(\"rubika://l.rubika.ir/\".concat(%s))); startActivity(jjjjjjjjjjjhhhggfff);",
    "color": "#00ACC1",
    "name": "آیدی روبیکا",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": " روبیکا آیدی کردن باز %s",
    "spec2": ""
  },
  {
    "code": "if (Build.VERSION.SDK_INT \u003e Build.VERSION_CODES.KITKAT) {\r\nWindow w \u003d%s.this.getWindow();\r\nw.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);\r\nw.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); w.setStatusBarColor(%s);\r\n}",
    "color": "#2AA4E2",
    "name": "changeStatebarColour",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.activity set statebar color %m.color",
    "spec2": ""
  },
  {
    "code": "%s.setOnClickListener(new View.OnClickListener() {\r\npublic void onClick(View v) {\r\n%s\r\n}\r\n});",
    "color": "#388E3C",
    "name": "وقتی کلیک شد",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "شد کلیک %m.view رو وقتی ",
    "spec2": ""
  },
  {
    "code": "",
    "color": "#E91E63",
    "name": "gridSetCustomViewData",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.gridview setGridCustomViewData %m.listMap",
    "spec2": ""
  },
  {
    "code": "%s.setVideoURI(Uri.parse(%s));",
    "color": "#4A6CD4",
    "name": "videoviewSetVideoUri",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.videoview setVideoUri %s",
    "spec2": ""
  },
  {
    "code": "%s.start();",
    "color": "#4A6CD4",
    "name": "videoviewStart",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.videoview start",
    "spec2": ""
  },
  {
    "code": "%s.getDuration()",
    "color": "#4A6CD4",
    "name": "videoviewGetDuration",
    "typeName": "",
    "palette": "240",
    "type": "d",
    "spec": "%m.videoview getDuration",
    "spec2": ""
  },
  {
    "code": "%s.getCurrentPosition()",
    "color": "#4A6CD4",
    "name": "videoviewGetCurrentPosition",
    "typeName": "",
    "palette": "240",
    "type": "d",
    "spec": "%m.videoview getCurrentPosition",
    "spec2": ""
  },
  {
    "code": "%s.isPlaying()",
    "color": "#4A6CD4",
    "name": "videoviewIsPlaying",
    "typeName": "",
    "palette": "240",
    "type": "b",
    "spec": "%m.videoview isPlaying",
    "spec2": ""
  },
  {
    "code": "%s.pause();",
    "color": "#4A6CD4",
    "name": "videoviewPause",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.videoview pause",
    "spec2": ""
  },
  {
    "code": "Glide.with(getApplicationContext())\n.load(%4$s)\n.placeholder(R.drawable.%3$s)\n.transform(new com.bumptech.glide.load.resource.bitmap.RoundedCorners(%2$s))\n.into(%1$s);",
    "color": "#212121",
    "name": "Glide Premium by Cyber",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "Glide Image \u0026 GIF from URL to %m.imageview radius %d Holder %m.resource URL %s",
    "spec2": ""
  },
  {
    "code": "%2$s.setTransitionName(%1$s);",
    "color": "#673AB7",
    "name": "av72727",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "name animasi %s  view %m.view ",
    "spec2": ""
  },
  {
    "code": "new UploadFile().execute(%1$s);",
    "color": "#6ABDCF",
    "name": "start_upload",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "Start Upload with path %s (*dont use in more block*)",
    "spec2": ""
  },
  {
    "code": "%s.getVisibility() \u003d\u003d View.%s",
    "color": "#E91E63",
    "name": "checkViewVisibility",
    "typeName": "",
    "palette": "240",
    "type": "b",
    "spec": "visibility of %m.view equals %m.visible",
    "spec2": ""
  },
  {
    "code": "%s ? (int)%s : (int)%s",
    "color": "#E1A928",
    "name": "ternaryNumber",
    "typeName": "",
    "palette": "240",
    "type": "d",
    "spec": "%b ? %d : %d",
    "spec2": ""
  },
  {
    "code": "%1$s.release();",
    "color": "#0097A7",
    "name": "release mediaplayer from path",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.mediaplayer from path release",
    "spec2": ""
  },
  {
    "code": "%1$s \u003d MediaPlayer.create(getApplicationContext(), Uri.fromFile(new java.io.File(%2$s)));",
    "color": "#0097A7",
    "name": "play music",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "play music with %m.mediaplayer with path %s",
    "spec2": ""
  },
  {
    "code": "%1$s.start();",
    "color": "#0097A7",
    "name": "start media player from path",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.mediaplayer start from path",
    "spec2": ""
  },
  {
    "code": "%1$s.pause();",
    "color": "#0097A7",
    "name": "pause mediaplayer from path",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.mediaplayer puase from path ",
    "spec2": ""
  },
  {
    "code": "%s.setGravity(Gravity.%s | Gravity.%s);",
    "color": "#4A6CD4",
    "name": "setGravity",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.view setGravity %m.gravity_v %m.gravity_h",
    "spec2": ""
  },
  {
    "code": "%s.setLayoutManager(new LinearLayoutManager(this));",
    "color": "#4A6CD4",
    "name": "recyclerSetLayoutManager",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.recyclerview setLayoutManager",
    "spec2": ""
  },
  {
    "code": "%1$s.addOnScrollListener(new RecyclerView.OnScrollListener() {\n\t\n\t    private int mLastFirstVisibleItem;\n\t\n\t    @Override\n\t    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {\n\t\t        super.onScrollStateChanged(recyclerView, newState);\n\t\t    }\n\t\n\t    @Override\n\t    public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {\n\t\t        super.onScrolled(recyclerView, dx, dy);\n\t\t\n\t\t        LinearLayoutManager layoutManager \u003d (LinearLayoutManager) recyclerView.getLayoutManager();\n\t\t        int firstVisibleItem \u003d layoutManager.findFirstVisibleItemPosition();\n\t\t\n\t\t        if (mLastFirstVisibleItem \u003c firstVisibleItem) {\n\t\t\t            // Scrolling down\n%2$s\r\n\t\t\t        }\n\t\t\n\t\t        if (mLastFirstVisibleItem \u003e firstVisibleItem) {\n\t\t\t            // Scrolling up\n%3$s\r\n\t\t\t        }\n\t\t\n\t\t        mLastFirstVisibleItem \u003d firstVisibleItem;\n\t\t    }\n});",
    "color": "#6ABDCF",
    "name": "onScroll Recycler view",
    "typeName": "",
    "palette": "240",
    "type": "e",
    "spec": "%m.recyclerview OnScrollLinstner ",
    "spec2": ""
  },
  {
    "code": "Animation animation \u003d AnimationUtils.loadAnimation(%2$s.this, R.anim.%3$s);\n%1$s.startAnimation(animation);",
    "color": "#6ABDCF",
    "name": "quickAnimation",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "Start Animation %m.view  Activity %m.activity  Anim %m.anim ",
    "spec2": ""
  },
  {
    "code": "SketchwareUtil.isConnected(getApplicationContext())",
    "color": "#2AA4E2",
    "name": "isConnected",
    "typeName": "",
    "palette": "240",
    "type": "b",
    "spec": "isConnected",
    "spec2": ""
  },
  {
    "code": "%s",
    "color": "#5CB722",
    "name": "asdNumber",
    "typeName": "",
    "palette": "240",
    "type": "d",
    "spec": "number %s.inputOnly",
    "spec2": ""
  },
  {
    "code": "%s.isEmpty()",
    "color": "#E1A92A",
    "name": "isEmpty",
    "typeName": "",
    "palette": "240",
    "type": "b",
    "spec": "%s isEmpty",
    "spec2": ""
  },
  {
    "code": "%s",
    "color": "#B71C1C",
    "name": "menu spinner 0",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "MenuSpinner",
    "spec2": ""
  },
  {
    "code": "PopupMenu popup \u003d new PopupMenu(%s.this, %s);\nMenu menu \u003d popup.getMenu();\n/*HR Team*/",
    "color": "#820017",
    "name": "menu spinner 1",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "MenuSpinner1 نام‌اکتیویتی %m.activity نام دکمه %m.view",
    "spec2": ""
  },
  {
    "code": "%s",
    "color": "#B71C1C",
    "name": "menu spinner 2",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "MenuSpinner2 آیتم‌ها",
    "spec2": ""
  },
  {
    "code": "/*HR Team*/\nmenu.add(\"%s\").setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);",
    "color": "#820017",
    "name": "menu spinner 3",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "MenuSpinner3  تنظیم‌نام‌آیتم %s.inputOnly ایجاد‌آیتم",
    "spec2": ""
  },
  {
    "code": "popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {\npublic boolean onMenuItemClick(MenuItem item) {\nswitch (item.getTitle().toString()) {\n",
    "color": "#B71C1C",
    "name": "menu spinner 4",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "MenuSpinner4 تنظیم‌آیتم‌ها",
    "spec2": ""
  },
  {
    "code": "case \"%s\":\n\n%s\n\nreturn true;",
    "color": "#B71C1C",
    "name": "menu spinner 5",
    "typeName": "",
    "palette": "240",
    "type": "c",
    "spec": "MenuSpinner5  نام‌آیتم %s.inputOnly تنظیم‌کلیک",
    "spec2": ""
  },
  {
    "code": "default: return false;\n}\n}\n});\n\n\npopup.show();",
    "color": "#B71C1C",
    "name": "menu spinner 6",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "MenuSpinner6 نمایش‌منو",
    "spec2": ""
  },
  {
    "code": "LayoutInflater %1$sLT \u003d getLayoutInflater(); \nView %1$sVT \u003d %1$sLT.inflate(R.layout.%2$s, null);",
    "color": "#F57C00",
    "name": "create custom toast",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomToast Create From %m.customViews",
    "spec2": ""
  },
  {
    "code": "final %3$s %2$s \u003d (%3$s)\n%1$sVT.findViewById(R.id.%4$s);",
    "color": "#F57C00",
    "name": "custom toast - add view",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomToast Add View with ID %s.inputOnly With Type %m.typeview From ID %s.inputOnly",
    "spec2": ""
  },
  {
    "code": "Toast %1$sT \u003d Toast.makeText(getApplicationContext(),\"\",%2$s);\n%1$sT.setView(%1$sVT);\n%1$sT.show();",
    "color": "#F57C00",
    "name": "Show Custom Toast",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.CustomToast Set Duration %d  show",
    "spec2": ""
  },
  {
    "code": "%2$s.setTransitionName(%3$s); android.app.ActivityOptions optionsCompat \u003d android.app.ActivityOptions.makeSceneTransitionAnimation(%4$s.this, %2$s, %3$s); startActivity(%1$s, optionsCompat.toBundle());",
    "color": "#673AB7",
    "name": "av2426",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "animasi view intent %m.intent  view %m.view  name %s activity %m.activity ",
    "spec2": ""
  },
  {
    "code": "%s.put(%s, (int)(%s));",
    "color": "#EE7D15",
    "name": "hashmapPutNumber",
    "typeName": "",
    "palette": "240",
    "type": " ",
    "spec": "%m.varMap put key %s value int %d",
    "spec2": ""
  },
  {
    "code": "Build.BRAND",
    "color": "#1E88E5",
    "name": "17",
    "typeName": "",
    "palette": "240",
    "type": "s",
    "spec": "get build brand",
    "spec2": ""
  },
  {
    "code": "Build.MODEL",
    "color": "#1E88E5",
    "name": "19",
    "typeName": "",
    "palette": "240",
    "type": "s",
    "spec": "get build model",
    "spec2": ""
  }
]