297 lines
12 KiB
Java
297 lines
12 KiB
Java
package com.assimilate.alltrans.fragments;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
public class TranslateCameraFragment extends Fragment {
|
|
|
|
// private ActivityResultLauncher<Intent> activityLauncher;
|
|
// private ActivityResultLauncher<String> 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<ActivityResult>() {
|
|
// @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<Boolean>() {
|
|
// @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<String, String> param = new HashMap<>();
|
|
// param.put("sourceLanguage", TranslateWordApp.getSourceLanguageCode());
|
|
// param.put("translationLanguage", TranslateWordApp.getTargetLanguageCode());
|
|
// param.put("text", text);
|
|
//
|
|
// sourceText = text;
|
|
// mBinding.result.setText("translating...");
|
|
// Translator<GoogleTranslator.GoogleTranslateCallback> 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);
|
|
// }
|
|
//
|
|
//
|
|
} |