From c55c7d6dc2dd3a34cfb142d6200aa3e55fdc911b Mon Sep 17 00:00:00 2001 From: buddygr Date: Sat, 23 Jul 2022 09:05:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E3=E4=B8=AA=E6=82=AC?= =?UTF-8?q?=E6=B5=AE=E7=AA=97SL4A=E5=87=BD=E6=95=B0=EF=BC=9AfloatView,floa?= =?UTF-8?q?tViewRemove,floatViewResult.=20feat:=20=E6=96=B0=E5=A2=9E4?= =?UTF-8?q?=E4=B8=AA=E7=B3=BB=E7=BB=9FSL4A=E5=87=BD=E6=95=B0=EF=BC=9Aelaps?= =?UTF-8?q?edRealtimeNanos,getScreenInfo,getSysInfo,getLocale.=20feat:=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B01=E4=B8=AA=E5=8F=AF=E8=A7=86=E5=8C=96SL4A?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=9AfullShow.=20fix:=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DUSB=20Serial=20facade=20=E6=97=A0=E6=B3=95=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=92=8C=E5=86=99=E5=85=A5=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=88=E5=9B=BD=E4=BA=A7CH34=E7=B3=BB?= =?UTF-8?q?=E5=88=97=E5=B0=9A=E6=9C=AA=E6=B5=8B=E8=AF=95=EF=BC=89.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qsl4a/qsl4a/facade/EyesFreeFacade.java | 62 -- .../qsl4a/facade/FacadeConfiguration.java | 25 +- .../qsl4a/qsl4a/facade/FloatViewFacade.java | 192 ++++++ .../qsl4a/qsl4a/facade/SettingsFacade.java | 53 ++ .../facade/{ => usb}/USBHostSerialFacade.java | 121 +++- .../qsl4a/facade/usb/deviceids/CH34xIds.java | 24 + .../qsl4a/facade/usb/deviceids/CP210xIds.java | 155 +++++ .../qsl4a/facade/usb/deviceids/CP2130Ids.java | 16 + .../facade/usb/deviceids/FTDISioIds.java | 587 ++++++++++++++++++ .../qsl4a/facade/usb/deviceids/Helpers.java | 27 + .../qsl4a/facade/usb/deviceids/PL2303Ids.java | 79 +++ .../qsl4a/facade/usb/deviceids/XdcVcpIds.java | 25 + src/main/res/values-zh/strings.xml | 5 + src/main/res/values/strings.xml | 1 + 14 files changed, 1295 insertions(+), 77 deletions(-) delete mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/EyesFreeFacade.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/FloatViewFacade.java rename src/main/java/org/qpython/qsl4a/qsl4a/facade/{ => usb}/USBHostSerialFacade.java (88%) create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/CH34xIds.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/CP210xIds.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/CP2130Ids.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/FTDISioIds.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/Helpers.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/PL2303Ids.java create mode 100644 src/main/java/org/qpython/qsl4a/qsl4a/facade/usb/deviceids/XdcVcpIds.java create mode 100644 src/main/res/values-zh/strings.xml diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/EyesFreeFacade.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/EyesFreeFacade.java deleted file mode 100644 index 4436bf5..0000000 --- a/src/main/java/org/qpython/qsl4a/qsl4a/facade/EyesFreeFacade.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package org.qpython.qsl4a.qsl4a.facade; - -import android.app.Service; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; - - -import org.qpython.qsl4a.qsl4a.jsonrpc.RpcReceiver; -import org.qpython.qsl4a.qsl4a.rpc.Rpc; -import org.qpython.qsl4a.qsl4a.rpc.RpcParameter; - -import java.util.List; - -/** - * Provides Text To Speech services for API 3 or less. - */ - -public class EyesFreeFacade extends RpcReceiver { - - private final Service mService; - private final PackageManager mPackageManager; - - public EyesFreeFacade(FacadeManager manager) { - super(manager); - mService = manager.getService(); - mPackageManager = mService.getPackageManager(); - } - - @Rpc(description = "Speaks the provided message via TTS.") - public void ttsSpeak(@RpcParameter(name = "message") String message) { - Intent intent = new Intent("com.google.tts.makeBagel"); - intent.putExtra("message", message); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - List infos = mPackageManager.queryIntentActivities(intent, 0); - if (infos.size() > 0) { - mService.startActivity(intent); - } else { - throw new RuntimeException("Eyes-Free is not installed."); - } - } - - @Override - public void shutdown() { - } -} diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/FacadeConfiguration.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/FacadeConfiguration.java index b9bb0bc..422414e 100644 --- a/src/main/java/org/qpython/qsl4a/qsl4a/facade/FacadeConfiguration.java +++ b/src/main/java/org/qpython/qsl4a/qsl4a/facade/FacadeConfiguration.java @@ -26,6 +26,8 @@ import org.qpython.qsl4a.qsl4a.rpc.RpcMinSdk; import org.qpython.qsl4a.qsl4a.rpc.RpcStartEvent; import org.qpython.qsl4a.qsl4a.rpc.RpcStopEvent; +import org.qpython.qsl4a.qsl4a.facade.usb.USBHostSerialFacade; + import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; @@ -87,24 +89,25 @@ public class FacadeConfiguration { sFacadeClassList.add(QPyInterfaceFacade.class); sFacadeClassList.add(USBHostSerialFacade.class); sFacadeClassList.add(VideoFacade.class); + sFacadeClassList.add(FloatViewFacade.class); - if (sSdkLevel >= 4) { - sFacadeClassList.add(TextToSpeechFacade.class); - } else { - sFacadeClassList.add(EyesFreeFacade.class); - } + //if (sSdkLevel >= 4) { + sFacadeClassList.add(TextToSpeechFacade.class); + //} else { + //sFacadeClassList.add(EyesFreeFacade.class); + //} - if (sSdkLevel >= 5) { + //if (sSdkLevel >= 5) { sFacadeClassList.add(BluetoothFacade.class); - } + //} - if (sSdkLevel >= 7) { + //if (sSdkLevel >= 7) { sFacadeClassList.add(SignalStrengthFacade.class); - } + //} - if (sSdkLevel >= 8) { + //if (sSdkLevel >= 8) { sFacadeClassList.add(WebCamFacade.class); - } + //} for (Class recieverClass : sFacadeClassList) { for (MethodDescriptor rpcMethod : MethodDescriptor.collectFrom(recieverClass)) { diff --git a/src/main/java/org/qpython/qsl4a/qsl4a/facade/FloatViewFacade.java b/src/main/java/org/qpython/qsl4a/qsl4a/facade/FloatViewFacade.java new file mode 100644 index 0000000..936a1b6 --- /dev/null +++ b/src/main/java/org/qpython/qsl4a/qsl4a/facade/FloatViewFacade.java @@ -0,0 +1,192 @@ +package org.qpython.qsl4a.qsl4a.facade; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Handler; +import android.os.Message; +import android.view.WindowManager; +import android.widget.Button; + +import org.json.JSONObject; +import org.qpython.qsl4a.R; +import org.qpython.qsl4a.qsl4a.jsonrpc.RpcReceiver; +import org.qpython.qsl4a.qsl4a.rpc.Rpc; +import org.qpython.qsl4a.qsl4a.rpc.RpcDefault; +import org.qpython.qsl4a.qsl4a.rpc.RpcOptional; +import org.qpython.qsl4a.qsl4a.rpc.RpcParameter; + +import java.util.ArrayList; + +public class FloatViewFacade extends RpcReceiver { + + private final Service mService; + private final PackageManager mPackageManager; + private final AndroidFacade mAndroidFacade; + private final String floatViewActivity = "org.qpython.qpy.main.activity.FloatViewActivity"; + private final String protectActivity = "org.qpython.qpy.main.auxActivity.ProtectActivity"; + private final Context context; + + //按钮数组 + public static final ArrayList