admin
2024-06-25 55240ee74a7d6e346b001d6e90b0762a7f456c10
增加测试/修改一个任务还没完全完成就开启下一个任务
5个文件已修改
2个文件已添加
140 ■■■■■ 已修改文件
app/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/taoke/autopay/android/service/SimulationService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/taoke/autopay/android/service/ZfbJob.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/taoke/autopay/android/ui/SettingsActivity.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/taoke/autopay/android/ui/WebViewActivity.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_webview.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -24,9 +24,9 @@
            buildConfigField("String", "API_URL", "\"http://193.112.35.168:9011/\"")
        }
        release {
//            buildConfigField("String", "API_URL", "\"http://api.izxwl.com:80/\"")
            buildConfigField("String", "API_URL", "\"http://api.izxwl.com:80/\"")
            // 测试状态
            buildConfigField("String", "API_URL", "\"http://193.112.35.168:9011/\"")
//            buildConfigField("String", "API_URL", "\"http://193.112.35.168:9011/\"")
            proguardFiles(
                    getDefaultProguardFile("proguard-android-optimize.txt"),
                    "proguard-rules.pro"
app/src/main/AndroidManifest.xml
@@ -42,6 +42,17 @@
            android:launchMode="singleTask" />
        <activity android:name=".ui.SettingsActivity" />
        <activity android:name=".ui.WebViewActivity"
            android:exported="true">
<!--                        <intent-filter>-->
<!--                            <action android:name="android.intent.action.MAIN" />-->
<!--                            <category android:name="android.intent.category.LAUNCHER" />-->
<!--                        </intent-filter>-->
        </activity>
        <service
            android:name=".service.SimulationService"
            android:enabled="true"
app/src/main/java/com/taoke/autopay/android/service/SimulationService.java
@@ -80,7 +80,7 @@
                } catch (Throwable e) {
                    e.printStackTrace();
                }
                mHandler.postDelayed(this, 1 * 1000); // 隔5秒检测一次,取下一个任务
                mHandler.postDelayed(this, 1 * 1000); // 隔1秒检测一次,取下一个任务
            }
        };
        mHandler.post(mRunnable);
app/src/main/java/com/taoke/autopay/android/service/ZfbJob.java
@@ -100,6 +100,13 @@
    @Override
    public void start() {
        LogUtils.tag(TAG).i("支付任务启动:" + this.order.id);
        // 延时1秒启动,防止上一个任务还没处理完成
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        extraState = 0;
        mDisposableTimeout = Single
                .just(true)
@@ -281,9 +288,15 @@
        if (clipboard != null) {
            clipboard.setPrimaryClip(ClipData.newPlainText("label", order.key));
        }
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
//        context.startActivity(context.getPackageManager().getLaunchIntentForPackage("com.eg.android.AlipayGphone"));
        //下面这个是直接打开支付宝首页,但是没有测试。上面一句代码打开支付宝,但是可能不是首页,是上一次的支付宝页面。要保证每次流程正确,可能需要像下面这样打开。
        LogUtils.tag(TAG).i("启动支付宝:" + this.order.id);
        context.startActivity(new Intent()
                .setAction(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_HOME)
app/src/main/java/com/taoke/autopay/android/ui/SettingsActivity.java
@@ -2,6 +2,7 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
@@ -30,6 +31,8 @@
import com.taoke.autopay.android.utils.accessibility.AccessibilityNodeInfoUtils;
import com.taoke.autopay.android.utils.accessibility.ClassNameNodeFilter;
import com.taoke.autopay.android.utils.accessibility.TextNodeFilter;
import java.net.URLEncoder;
public class SettingsActivity extends AppCompatActivity {
@@ -97,6 +100,14 @@
        mViewBinding.tvTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Intent intent =   new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("alipays://platformapi/startapp?appId=20000067&url=%s", URLEncoder.encode("https://ur.alipay.com/_qHNy1BGCl0hq70u17PWl4"))));
//                startActivity(intent);
//                if(1>0){
//                    return;
//                }
                //
                Order testOrder=new Order();
                testOrder.id="123123123123";
                testOrder.state="0";
app/src/main/java/com/taoke/autopay/android/ui/WebViewActivity.java
New file
@@ -0,0 +1,84 @@
package com.taoke.autopay.android.ui;
import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import com.apkfuns.log2file.LogFileEngineFactory;
import com.apkfuns.logutils.LogUtils;
import com.taoke.autopay.android.data.local.LocalStore;
import com.taoke.autopay.android.data.local.entity.LoginAccount;
import com.taoke.autopay.android.data.network.RestAPI;
import com.taoke.autopay.android.databinding.ActivitySingInBinding;
import com.taoke.autopay.android.databinding.ActivityWebviewBinding;
import com.taoke.autopay.android.utils.MD5Utils;
import com.taoke.autopay.android.utils.PermissionHelper;
import com.taoke.autopay.android.utils.PermissionInterface;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class WebViewActivity extends AppCompatActivity {
    private static final String TAG = "WebViewActivity";
    private ActivityWebviewBinding mViewBinding;
    private Disposable mDisposable;
    private PermissionHelper mPermissionsChecker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        mViewBinding = ActivityWebviewBinding.inflate(getLayoutInflater());
        setContentView(mViewBinding.getRoot());
        ViewCompat.setOnApplyWindowInsetsListener(mViewBinding.main, (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
        mViewBinding.webview.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                Log.i(TAG,request.getUrl().toString());
                return super.shouldOverrideUrlLoading(view, request);
            }
        });
        mViewBinding.webview.setWebChromeClient(new WebChromeClient(){
        });
        WebSettings webSetting = mViewBinding.webview.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setTextZoom(100);
        webSetting.setDomStorageEnabled(true);
        mViewBinding.webview.loadUrl("https://ur.alipay.com/_qHNy1BGCl0hq70u17PWl4");
    }
    @Override
    protected void onDestroy() {
        if (mDisposable != null) {
            mDisposable.dispose();
        }
        super.onDestroy();
    }
}
app/src/main/res/layout/activity_webview.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.WebViewActivity">
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></WebView>
</androidx.constraintlayout.widget.ConstraintLayout>