package com.assimilate.alltrans.fragments; import androidx.fragment.app.Fragment; public class TranslateCameraFragment extends Fragment { // private ActivityResultLauncher activityLauncher; // private ActivityResultLauncher permissionLauncher; // // private FragmentTranslateCameraBinding mBinding; // // private TextToSpeech tts; // // private boolean translating = false; // private boolean adLoading = false; // 广告是否处于加载中 // private boolean collectCurrent = false; // private String sourceText = ""; // 可能会有一种屌毛,翻译完成后,先去输入框删几个字符,然后再去点击收藏按钮。所以每次翻译前备份一下 // // @Override // public void onCreate(@Nullable Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // activityLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { // @Override // public void onActivityResult(ActivityResult result) { // if (Activity.RESULT_OK == result.getResultCode() && null != result.getData()) { // Intent data = result.getData(); // String recognizedText = data.getStringExtra("recognizedText"); // if (!TextUtils.isEmpty(recognizedText)) { // mBinding.inputText.setText(recognizedText); // translate(recognizedText); // } // } // } // }); // permissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), new ActivityResultCallback() { // @Override // public void onActivityResult(Boolean result) { // if (result.booleanValue()) { // launchCameraApi(); // } else { // Widget.makeToast(getActivity(), "permission denied"); // } // } // }); // // translating = false; // adLoading = false; // collectCurrent = false; // // tts = new TextToSpeech(getActivity(), new TextToSpeech.OnInitListener() { // @Override // public void onInit(int status) { // if (null != tts && TextToSpeech.SUCCESS == status) // tts.setLanguage(Locale.getDefault()); // } // }); // } // // @Override // public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // mBinding = FragmentTranslateCameraBinding.inflate(getLayoutInflater()); // // // 朗读原文 // mBinding.speakSource.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // String speech = mBinding.result.getText().toString().trim(); // if (!TextUtils.isEmpty(speech)) { // if (null != tts // && TextToSpeech.LANG_NOT_SUPPORTED != tts.isLanguageAvailable(Locale.getDefault())) { // tts.speak(speech, 0, null, null); // } // } // } // }); // // 清空翻译输入框与结果文本 // mBinding.clear.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // mBinding.result.setText(""); // mBinding.inputText.setText(""); // // reset(); // } // }); // // 朗读译文 // mBinding.speakTarget.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // String speech = mBinding.result.getText().toString().trim(); // if (!translating && !TextUtils.isEmpty(speech)) { // if (null != tts // && TextToSpeech.LANG_NOT_SUPPORTED != tts.isLanguageAvailable(Locale.getDefault())) { // tts.speak(speech, 0, null, null); // } // } // } // }); // // 分享译文 // mBinding.shareTrans.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // if (translating) { // Widget.makeToast(getActivity(), "Translating..."); // return; // } // // final String share = mBinding.result.getText().toString().trim(); // if (!TextUtils.isEmpty(share)) { // Intent intent = new Intent(Intent.ACTION_SEND); // intent.setType("text/plain"); // intent.putExtra(Intent.EXTRA_TEXT, share); // startActivity(Intent.createChooser(intent, "Share " + getString(R.string.app_name))); // } // } // }); // // 复制到粘贴板 // mBinding.copyTrans.setOnClickListener(new View.OnClickListener() { // private final String tip = "Copied to clipboard!"; // @Override // public void onClick(View v) { // final String share = mBinding.result.getText().toString().trim(); // if (!translating && !TextUtils.isEmpty(share)) { // ClipboardManager clipboardManager = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); // ClipData clipData = ClipData.newPlainText("targetValue", share); // clipboardManager.setPrimaryClip(clipData); // Widget.makeToast(getActivity(), tip); // } // } // }); // // 收藏按钮:翻译中禁止收藏, 无原文禁止收藏,无译文禁止收藏 // mBinding.collectTrans.setOnClickListener(new View.OnClickListener() { // private DbTranslation dbTranslation; // // @Override // public void onClick(View v) { // if (translating) return; // // final String sourceTxt = sourceText; // if (TextUtils.isEmpty(sourceTxt)) return; // // if (collectCurrent) { // collectCurrent = false; // getDbTranslation(getActivity()).collectJust(false); // mBinding.collectTrans.setImageResource(R.mipmap.trw_ic_collecttrans); // } else { // collectCurrent = true; // getDbTranslation(getActivity()).collectJust(true); // mBinding.collectTrans.setImageResource(R.mipmap.trw_ic_collectedtrans); // } // } // // private DbTranslation getDbTranslation(Context context) { // if (null == dbTranslation) { // dbTranslation = new DbTranslation(context); // } // return dbTranslation; // } // }); // // mBinding.changeLanguage.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // launchLanguageSet(); // } // }); // // return mBinding.getRoot(); // } // // @Override // public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { // super.onViewCreated(view, savedInstanceState); // } // // @Override // public void onResume() { // super.onResume(); // // // 每次回来可能会更新 // mBinding.languageSource.setText(TranslateWordApp.getSourceLanguage()); // mBinding.languageTarget.setText(TranslateWordApp.getTargetLanguage()); // mBinding.sourceLanguage2.setText(TranslateWordApp.getSourceLanguage()); // mBinding.targetLanguage2.setText(TranslateWordApp.getTargetLanguage()); // // // TODO: 可以判断是否需要再次请求原生广告 // } // // @Override // public void onStop() { // super.onStop(); // // if (null != tts) tts.stop(); // } // // @Override // public void onDestroy() { // super.onDestroy(); // if (null != tts) tts.shutdown(); // } // // public void launchCamera() { // if (withCameraPermission()) { // launchCameraApi(); // } else { // if (null != permissionLauncher) { // permissionLauncher.launch(Manifest.permission.CAMERA); // } // } // } // // private void launchCameraApi() { // if (null != activityLauncher) { // activityLauncher.launch(new Intent(getActivity(), TranslateCameraActivity.class)); // } // } // // private void translate(@NonNull final String text) { // // step1. 叫用户检查网络连接 // if (translating) { // // 第一次点击翻译按钮后 可能会延迟响应结果,翻译期间再次点击翻译按钮无效 // Logger.d("log", "translating(not post data)..."); // return; // } // Logger.d("log", "translating..."); // reset(); // // translating = true; // final HashMap param = new HashMap<>(); // param.put("sourceLanguage", TranslateWordApp.getSourceLanguageCode()); // param.put("translationLanguage", TranslateWordApp.getTargetLanguageCode()); // param.put("text", text); // // sourceText = text; // mBinding.result.setText("translating..."); // Translator translator = new GoogleTranslator(); // translator.translate(param, new GoogleTranslator.GoogleTranslateCallback() { // @Override // public void onResponse(String val) { // translating = false; // // if (!TextUtils.isEmpty(val)) { // TranslateMainActivity activity = null; // if (getActivity() instanceof TranslateMainActivity) { // activity = (TranslateMainActivity) getActivity(); // } // if (null != activity) { // activity.runOnUiThread(new Runnable() { // @Override // public void run() { // mBinding.result.setText(val); // addLog(val); // } // }); // } // } // } // // private void addLog(String targetTxt) { // FragmentActivity activity = getActivity(); // if (null != activity) { // DbTranslation dbTranslation = new DbTranslation(activity); // Translations translations = new Translations(TranslateWordApp.getSourceLanguage(), sourceText, TranslateWordApp.getTargetLanguage(), targetTxt); // dbTranslation.addTranslation(translations); // } // } // }); // } // // private void reset() { // // 归位收藏图片 // mBinding.collectTrans.setImageResource(R.mipmap.trw_ic_collecttrans); // // 归位收藏备份文本 // sourceText = ""; // // 设置当前未处于收藏状态 // collectCurrent = false; // // 当前不处于翻译状态 // translating = false; // } // // private boolean withCameraPermission() { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // FragmentActivity activity = getActivity(); // if (null == activity) return false; // return ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED; // } else { // return true; // } // } // // private void launchLanguageSet() { // Intent intent = new Intent(getActivity(), TranslateChangeLanguageActivity.class); // getActivity().startActivity(intent); // } // // }