diff --git a/apputils/build.gradle b/apputils/build.gradle
index 8655bee..4e420ec 100644
--- a/apputils/build.gradle
+++ b/apputils/build.gradle
@@ -29,7 +29,7 @@ android {
// versionName 更新后需要手动设置
// 项目模块目录的 build.gradle 文件的 stageCount=0
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
- versionName "9.4"
+ versionName "15.0"
if(true) {
versionName = genVersionName("${versionName}")
}
@@ -41,38 +41,26 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_17
- targetCompatibility JavaVersion.VERSION_17
- }
}
dependencies {
api project(':libapputils')
api fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'cc.winboll.studio:libappbase:15.0.3'
- // SSH
- implementation 'com.jcraft:jsch:0.1.55'
- // Html 解析
- implementation 'org.jsoup:jsoup:1.13.1'
// 二维码类库
implementation 'com.google.zxing:core:3.4.1'
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
- // 应用介绍页类库
- implementation 'io.github.medyo:android-about-page:2.0.0'
- // 吐司类库
- implementation 'com.github.getActivity:ToastUtils:10.5'
+
// 网络连接类库
- implementation 'com.squareup.okhttp3:okhttp:4.4.1'
+ //implementation 'com.squareup.okhttp3:okhttp:4.4.1'
- // Android 类库
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.viewpager:viewpager:1.0.0'
- implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
- implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
- implementation 'androidx.fragment:fragment:1.1.0'
- implementation 'com.google.android.material:material:1.4.0'
+ // Html 解析
+ //implementation 'org.jsoup:jsoup:1.13.1'
- implementation 'cc.winboll.studio:libappbase:2.1.5'
+ // SSH
+ //implementation 'com.jcraft:jsch:0.1.55'
+
+ // 应用介绍页类库
+ //implementation 'io.github.medyo:android-about-page:2.0.0'
}
diff --git a/apputils/build.properties b/apputils/build.properties
index 66686d3..d36d13f 100644
--- a/apputils/build.properties
+++ b/apputils/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Sun Mar 09 09:34:24 HKT 2025
-stageCount=5
+#Tue Mar 18 00:30:41 GMT 2025
+stageCount=0
libraryProject=libapputils
-baseVersion=9.4
-publishVersion=9.4.4
-buildCount=0
-baseBetaVersion=9.4.5
+baseVersion=15.0
+publishVersion=15.0.0
+buildCount=6
+baseBetaVersion=15.0.0
diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java
index 5e69ad2..58a3841 100644
--- a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java
+++ b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java
@@ -1,5 +1,7 @@
package cc.winboll.studio.apputils;
+import cc.winboll.studio.apputils.R;
+import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -10,11 +12,10 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import cc.winboll.studio.apputils.R;
+import android.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
+import cc.winboll.studio.libappbase.utils.ToastUtils;
import cc.winboll.studio.libapputils.activities.AssetsHtmlActivity;
import cc.winboll.studio.libapputils.activities.LogActivity;
import cc.winboll.studio.libapputils.activities.QRCodeDecodeActivity;
@@ -24,11 +25,10 @@ import cc.winboll.studio.libapputils.app.WinBollActivityManager;
import cc.winboll.studio.libapputils.bean.APPInfo;
import cc.winboll.studio.libapputils.view.AboutView;
import cc.winboll.studio.libapputils.view.YesNoAlertDialog;
-import com.hjq.toast.ToastUtils;
import java.util.List;
import java.util.Set;
-final public class MainActivity extends AppCompatActivity implements IWinBollActivity {
+final public class MainActivity extends Activity implements IWinBollActivity {
public static final String TAG = "MainActivity";
@@ -38,7 +38,7 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
LogView mLogView;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
@@ -91,12 +91,12 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
// 初始化工具栏
mToolbar = findViewById(R.id.activitymainToolbar1);
- setSupportActionBar(mToolbar);
+ setActionBar(mToolbar);
if (isEnableDisplayHomeAsUp()) {
// 显示后退按钮
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getActionBar().setDisplayHomeAsUpEnabled(true);
}
- getSupportActionBar().setSubtitle(getTag());
+ getActionBar().setSubtitle(getTag());
checkResolveActivity();
archiveInstance();
@@ -281,7 +281,7 @@ final public class MainActivity extends AppCompatActivity implements IWinBollAct
WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
return true;
} else if (item.getItemId() == R.id.item_exitdebug) {
- AboutView.setApp2NormalMode(this);
+ //AboutView.setApp2NormalMode(this);
return true;
} else if (item.getItemId() == android.R.id.home) {
WinBollActivityManager.getInstance(this).finish(this);
diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java
index 6886697..3f4b678 100644
--- a/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java
+++ b/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java
@@ -1,24 +1,25 @@
package cc.winboll.studio.apputils;
-import android.os.Bundle;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import cc.winboll.studio.libapputils.app.IWinBollActivity;
-import cc.winboll.studio.libapputils.bean.APPInfo;
-import cc.winboll.studio.libapputils.view.StringToQrCodeView;
-
/**
* @Author ZhanGSKen@QQ.COM
* @Date 2025/01/17 19:50:46
*/
-public class TestStringToQrCodeViewActivity extends AppCompatActivity implements IWinBollActivity {
+import cc.winboll.studio.apputils.R;
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.Toolbar;
+import cc.winboll.studio.libapputils.app.IWinBollActivity;
+import cc.winboll.studio.libapputils.bean.APPInfo;
+import cc.winboll.studio.libapputils.view.StringToQrCodeView;
+
+public class TestStringToQrCodeViewActivity extends Activity implements IWinBollActivity {
public static final String TAG = "TestStringToQrCodeViewActivity";
StringToQrCodeView mStringToQrCodeView;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
diff --git a/apputils/src/main/res/layout/activity_main.xml b/apputils/src/main/res/layout/activity_main.xml
index 09c4a6d..78a56d5 100644
--- a/apputils/src/main/res/layout/activity_main.xml
+++ b/apputils/src/main/res/layout/activity_main.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
diff --git a/apputils/src/main/res/layout/activity_teststringtoqrcodeview.xml b/apputils/src/main/res/layout/activity_teststringtoqrcodeview.xml
index 36eeaa4..acc41db 100644
--- a/apputils/src/main/res/layout/activity_teststringtoqrcodeview.xml
+++ b/apputils/src/main/res/layout/activity_teststringtoqrcodeview.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
diff --git a/apputils/src/main/res/layout/activity_testwinboll.xml b/apputils/src/main/res/layout/activity_testwinboll.xml
index c221078..b881757 100644
--- a/apputils/src/main/res/layout/activity_testwinboll.xml
+++ b/apputils/src/main/res/layout/activity_testwinboll.xml
@@ -7,7 +7,7 @@
android:layout_height="match_parent"
android:background="#FF36B5B3">
-
diff --git a/apputils/src/main/res/layout/view_toast.xml b/apputils/src/main/res/layout/view_toast.xml
deleted file mode 100644
index d6a9915..0000000
--- a/apputils/src/main/res/layout/view_toast.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apputils/src/main/res/menu/toolbar_main.xml b/apputils/src/main/res/menu/toolbar_main.xml
index 67090b0..92634dd 100644
--- a/apputils/src/main/res/menu/toolbar_main.xml
+++ b/apputils/src/main/res/menu/toolbar_main.xml
@@ -3,14 +3,11 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
+ android:title="TestWinBollActivity"/>
+ android:title="TestStringToQrCodeViewActivity"/>
+ android:title="TestQRCodeDecodeActivity"/>
diff --git a/apputils/src/main/res/values/styles.xml b/apputils/src/main/res/values/styles.xml
index 620400d..8a061f3 100644
--- a/apputils/src/main/res/values/styles.xml
+++ b/apputils/src/main/res/values/styles.xml
@@ -1,14 +1,14 @@
-
-
-
+
diff --git a/libapputils/build.gradle b/libapputils/build.gradle
index 3755ded..ff1dd28 100644
--- a/libapputils/build.gradle
+++ b/libapputils/build.gradle
@@ -21,28 +21,18 @@ android {
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'cc.winboll.studio:libappbase:15.0.3'
- // SSH
- implementation 'com.jcraft:jsch:0.1.55'
- // Html 解析
- implementation 'org.jsoup:jsoup:1.13.1'
// 二维码类库
implementation 'com.google.zxing:core:3.4.1'
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
- // 应用介绍页类库
- implementation 'io.github.medyo:android-about-page:2.0.0'
- // 吐司类库
- implementation 'com.github.getActivity:ToastUtils:10.5'
+
// 网络连接类库
- implementation 'com.squareup.okhttp3:okhttp:4.4.1'
+ //implementation 'com.squareup.okhttp3:okhttp:4.4.1'
- // Android 类库
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.viewpager:viewpager:1.0.0'
- implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
- implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
- implementation 'androidx.fragment:fragment:1.1.0'
- implementation 'com.google.android.material:material:1.4.0'
+ // Html 解析
+ //implementation 'org.jsoup:jsoup:1.13.1'
- implementation 'cc.winboll.studio:libappbase:2.1.5'
+ // SSH
+ //implementation 'com.jcraft:jsch:0.1.55'
}
diff --git a/libapputils/build.properties b/libapputils/build.properties
index aefb90b..d36d13f 100644
--- a/libapputils/build.properties
+++ b/libapputils/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Sun Mar 09 09:34:16 HKT 2025
-stageCount=5
+#Tue Mar 18 00:30:41 GMT 2025
+stageCount=0
libraryProject=libapputils
-baseVersion=9.4
-publishVersion=9.4.4
-buildCount=0
-baseBetaVersion=9.4.5
+baseVersion=15.0
+publishVersion=15.0.0
+buildCount=6
+baseBetaVersion=15.0.0
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AboutActivity.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AboutActivity.java
index 7ace698..388012c 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AboutActivity.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AboutActivity.java
@@ -5,20 +5,20 @@ package cc.winboll.studio.libapputils.activities;
* @Date 2024/07/14 13:20:33
* @Describe 应用介绍页
*/
+import cc.winboll.studio.libapputils.R;
+import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.LinearLayout;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import cc.winboll.studio.libapputils.R;
+import android.widget.Toolbar;
import cc.winboll.studio.libapputils.app.IWinBollActivity;
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
import cc.winboll.studio.libapputils.bean.APPInfo;
import cc.winboll.studio.libapputils.view.AboutView;
-final public class AboutActivity extends AppCompatActivity implements IWinBollActivity {
+final public class AboutActivity extends Activity implements IWinBollActivity {
public static final String TAG = "AboutActivity";
@@ -28,7 +28,7 @@ final public class AboutActivity extends AppCompatActivity implements IWinBollAc
APPInfo mAPPInfo;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java
index 1d2ca37..a3ec656 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java
@@ -5,23 +5,23 @@ package cc.winboll.studio.libapputils.activities;
* @Date 2025/01/03 11:02:49
* @Describe 一个可以浏览随 APP 附带的 Html 文档的窗口
*/
+import cc.winboll.studio.libapputils.R;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
+import android.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils;
-import cc.winboll.studio.libapputils.R;
import cc.winboll.studio.libapputils.app.IWinBollActivity;
import cc.winboll.studio.libapputils.bean.APPInfo;
import cc.winboll.studio.libapputils.view.SimpleWebView;
import java.io.IOException;
import java.io.InputStream;
-public class AssetsHtmlActivity extends AppCompatActivity implements IWinBollActivity {
+public class AssetsHtmlActivity extends Activity implements IWinBollActivity {
public static final String TAG = "AssetsHtmlActivity";
@@ -35,7 +35,7 @@ public class AssetsHtmlActivity extends AppCompatActivity implements IWinBollAct
String mszHtmlFileName;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/LogActivity.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/LogActivity.java
index bbedcf4..35eb8b5 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/LogActivity.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/LogActivity.java
@@ -5,24 +5,23 @@ package cc.winboll.studio.libapputils.activities;
* @Date 2025/03/08 00:19:39
* @Describe LogActivity
*/
+import cc.winboll.studio.libapputils.R;
+import android.app.Activity;
import android.os.Bundle;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import cc.winboll.studio.libappbase.GlobalApplication;
+import android.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
-import cc.winboll.studio.libapputils.R;
import cc.winboll.studio.libapputils.app.IWinBollActivity;
import cc.winboll.studio.libapputils.bean.APPInfo;
-public class LogActivity extends AppCompatActivity implements IWinBollActivity {
+public class LogActivity extends Activity implements IWinBollActivity {
public static final String TAG = "LogActivity";
LogView mLogView;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java
index 8594583..6c31fa8 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java
@@ -5,15 +5,13 @@ package cc.winboll.studio.libapputils.activities;
* @Date 2025/01/18 10:32:21
* @Describe 二维码扫码解码窗口
*/
+import cc.winboll.studio.libapputils.R;
+import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.TextView;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
-import cc.winboll.studio.libapputils.R;
+import android.widget.Toolbar;
import cc.winboll.studio.libapputils.app.IWinBollActivity;
import cc.winboll.studio.libapputils.bean.APPInfo;
import com.google.zxing.ResultPoint;
@@ -22,7 +20,7 @@ import com.journeyapps.barcodescanner.BarcodeResult;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
import java.util.List;
-public class QRCodeDecodeActivity extends AppCompatActivity implements IWinBollActivity {
+public class QRCodeDecodeActivity extends Activity implements IWinBollActivity {
public static final String TAG = "QRCodeDecodeActivity";
@@ -33,7 +31,7 @@ public class QRCodeDecodeActivity extends AppCompatActivity implements IWinBollA
DecoratedBarcodeView barcodeView;
@Override
- public AppCompatActivity getActivity() {
+ public Activity getActivity() {
return this;
}
@@ -70,14 +68,15 @@ public class QRCodeDecodeActivity extends AppCompatActivity implements IWinBollA
resultTextView = findViewById(R.id.activityqrcodedecodeTextView1);
barcodeView = findViewById(R.id.activityqrcodedecodeDecoratedBarcodeView1);
// 请求相机权限
- if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
- != PackageManager.PERMISSION_GRANTED) {
- ActivityCompat.requestPermissions(this,
- new String[]{android.Manifest.permission.CAMERA},
- REQUEST_CAMERA_PERMISSION);
- } else {
- startScanning();
- }
+// if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
+// != PackageManager.PERMISSION_GRANTED) {
+// ActivityCompat.requestPermissions(this,
+// new String[]{android.Manifest.permission.CAMERA},
+// REQUEST_CAMERA_PERMISSION);
+// } else {
+// startScanning();
+// }
+ startScanning();
}
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/IWinBollActivity.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/IWinBollActivity.java
index 5bf0ea4..86c1f72 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/IWinBollActivity.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/IWinBollActivity.java
@@ -5,8 +5,8 @@ package cc.winboll.studio.libapputils.app;
* @Date 2025/03/08 00:15:36
* @Describe WinBoll 活动窗口通用接口
*/
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
+import android.app.Activity;
+import android.widget.Toolbar;
import cc.winboll.studio.libapputils.bean.APPInfo;
public interface IWinBollActivity {
@@ -14,7 +14,7 @@ public interface IWinBollActivity {
public static final String TAG = "IWinBollActivity";
// 获取当前具有 IWinBoll 特征的 AppCompatActivity 活动窗口
- abstract public AppCompatActivity getActivity();
+ abstract public Activity getActivity();
abstract public APPInfo getAppInfo();
abstract public String getTag();
abstract public Toolbar initToolBar();
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/MyActivityLifecycleCallbacks.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/MyActivityLifecycleCallbacks.java
index a45e8e4..7397cd4 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/MyActivityLifecycleCallbacks.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/MyActivityLifecycleCallbacks.java
@@ -9,7 +9,7 @@ import android.app.Application;
import android.content.Intent;
import android.os.Bundle;
import cc.winboll.studio.libappbase.LogUtils;
-import com.hjq.toast.ToastUtils;
+import cc.winboll.studio.libappbase.utils.ToastUtils;
public class MyActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/WinBollActivityManager.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/WinBollActivityManager.java
index 26b7e33..4da3792 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/app/WinBollActivityManager.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/app/WinBollActivityManager.java
@@ -9,9 +9,9 @@ package cc.winboll.studio.libapputils.app;
* https://blog.csdn.net/qq_29364417/article/details/109379915?app_version=6.4.2&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22109379915%22%2C%22source%22%3A%22weixin_38986226%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app
*/
import android.app.ActivityManager;
+import android.app.TaskStackBuilder;
import android.content.Context;
import android.content.Intent;
-import androidx.core.app.TaskStackBuilder;
import cc.winboll.studio.libappbase.LogUtils;
import java.util.HashMap;
import java.util.Iterator;
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/service/WinBollClientService.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/service/WinBollClientService.java
index 2b79b70..95d2e72 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/service/WinBollClientService.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/service/WinBollClientService.java
@@ -8,8 +8,8 @@ import android.content.ServiceConnection;
import android.graphics.drawable.Drawable;
import android.os.IBinder;
import cc.winboll.studio.libappbase.LogUtils;
+import cc.winboll.studio.libappbase.utils.ToastUtils;
import cc.winboll.studio.libapputils.util.ServiceUtils;
-import com.hjq.toast.ToastUtils;
/**
* @Author ZhanGSKen@QQ.COM
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/util/FileUtils.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/util/FileUtils.java
index 6e463a5..06834e0 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/util/FileUtils.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/util/FileUtils.java
@@ -9,7 +9,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.net.Uri;
-import androidx.core.content.FileProvider;
import cc.winboll.studio.libappbase.LogUtils;
import java.io.File;
import java.io.FileInputStream;
@@ -23,6 +22,7 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import android.support.v4.content.FileProvider;
public class FileUtils {
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/AboutView.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/AboutView.java
index 6f2849b..9379a36 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/AboutView.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/AboutView.java
@@ -5,6 +5,7 @@ package cc.winboll.studio.libapputils.view;
* @Date 2024/08/12 14:38:03
* @Describe AboutView
*/
+import cc.winboll.studio.libapputils.R;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -18,22 +19,19 @@ import android.widget.EditText;
import android.widget.LinearLayout;
import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.LogUtils;
-import cc.winboll.studio.libapputils.R;
+import cc.winboll.studio.libappbase.utils.ToastUtils;
import cc.winboll.studio.libapputils.app.AppVersionUtils;
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
import cc.winboll.studio.libapputils.bean.APPInfo;
import cc.winboll.studio.libapputils.bean.DebugBean;
import cc.winboll.studio.libapputils.util.PrefUtils;
-import com.hjq.toast.ToastUtils;
import java.io.IOException;
-import mehdi.sakout.aboutpage.AboutPage;
-import mehdi.sakout.aboutpage.Element;
-import okhttp3.Call;
-import okhttp3.Callback;
-import okhttp3.Credentials;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Response;
+//import okhttp3.Call;
+//import okhttp3.Callback;
+//import okhttp3.Credentials;
+//import okhttp3.OkHttpClient;
+//import okhttp3.Request;
+//import okhttp3.Response;
public class AboutView extends LinearLayout {
@@ -45,7 +43,7 @@ public class AboutView extends LinearLayout {
APPInfo mAPPInfo;
WinBollServiceStatusView mWinBollServiceStatusView;
- OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
+ //OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
String mszAppName = "";
String mszAppAPKFolderName = "";
String mszAppAPKName = "";
@@ -97,57 +95,58 @@ public class AboutView extends LinearLayout {
typedArray.recycle();
return appInfo;
}
+ void initView(Context context) {}
- void initView(Context context) {
- mszAppName = mAPPInfo.getAppName();
- mszAppAPKFolderName = mAPPInfo.getAppAPKFolderName();
- mszAppAPKName = mAPPInfo.getAppAPKName();
- mszAppGitName = mAPPInfo.getAppGitName();
- mszAppDescription = mAPPInfo.getAppDescription();
- mnAppIcon = mAPPInfo.getAppIcon();
-
- mszWinBollServerHost = GlobalApplication.isDebuging() ? "https://dev.winboll.cc": "https://www.winboll.cc";
-
- try {
- mszAppVersionName = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
- } catch (PackageManager.NameNotFoundException e) {
- LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
- }
- mszCurrentAppPackageName = mszAppAPKName + "_" + mszAppVersionName + ".apk";
- mszHomePage = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName;
- if(mAPPInfo.getAppGitAPPBranch().equals("")) {
- mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName;
- } else {
- mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder();
-}
-
- if (GlobalApplication.isDebuging()) {
- LayoutInflater inflater = LayoutInflater.from(mContext);
- View addedView = inflater.inflate(R.layout.view_about_dev, this, false);
- LinearLayout llMain = addedView.findViewById(R.id.viewaboutdevLinearLayout1);
- metDevUserName = addedView.findViewById(R.id.viewaboutdevEditText1);
- metDevUserPassword = addedView.findViewById(R.id.viewaboutdevEditText2);
- metDevUserName.setText(PrefUtils.getString(mContext, "metDevUserName", ""));
- metDevUserPassword.setText(PrefUtils.getString(mContext, "metDevUserPassword", ""));
- //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
- mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutdevWinBollServiceStatusView1);
- mWinBollServiceStatusView.setServerHost(mszWinBollServerHost);
- mWinBollServiceStatusView.setAuthInfo(metDevUserName.getText().toString(), metDevUserPassword.getText().toString());
- //llMain.addView(mDevelopHostConnectionStatusView);
- llMain.addView(createAboutPage());
- addView(addedView);
- } else {
- LayoutInflater inflater = LayoutInflater.from(mContext);
- View addedView = inflater.inflate(R.layout.view_about_www, this, false);
- LinearLayout llMain = addedView.findViewById(R.id.viewaboutwwwLinearLayout1);
- //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
- mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutwwwWinBollServiceStatusView1);
- mWinBollServiceStatusView.setServerHost(mszWinBollServerHost);
- mWinBollServiceStatusView.setAuthInfo("", "");
- //llMain.addView(mDevelopHostConnectionStatusView);
- llMain.addView(createAboutPage());
- addView(addedView);
- }
+// void initView(Context context) {
+// mszAppName = mAPPInfo.getAppName();
+// mszAppAPKFolderName = mAPPInfo.getAppAPKFolderName();
+// mszAppAPKName = mAPPInfo.getAppAPKName();
+// mszAppGitName = mAPPInfo.getAppGitName();
+// mszAppDescription = mAPPInfo.getAppDescription();
+// mnAppIcon = mAPPInfo.getAppIcon();
+//
+// mszWinBollServerHost = GlobalApplication.isDebuging() ? "https://dev.winboll.cc": "https://www.winboll.cc";
+//
+// try {
+// mszAppVersionName = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
+// } catch (PackageManager.NameNotFoundException e) {
+// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
+// }
+// mszCurrentAppPackageName = mszAppAPKName + "_" + mszAppVersionName + ".apk";
+// mszHomePage = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName;
+// if(mAPPInfo.getAppGitAPPBranch().equals("")) {
+// mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName;
+// } else {
+// mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder();
+//}
+//
+// if (GlobalApplication.isDebuging()) {
+// LayoutInflater inflater = LayoutInflater.from(mContext);
+// View addedView = inflater.inflate(R.layout.view_about_dev, this, false);
+// LinearLayout llMain = addedView.findViewById(R.id.viewaboutdevLinearLayout1);
+// metDevUserName = addedView.findViewById(R.id.viewaboutdevEditText1);
+// metDevUserPassword = addedView.findViewById(R.id.viewaboutdevEditText2);
+// metDevUserName.setText(PrefUtils.getString(mContext, "metDevUserName", ""));
+// metDevUserPassword.setText(PrefUtils.getString(mContext, "metDevUserPassword", ""));
+// //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
+// mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutdevWinBollServiceStatusView1);
+// mWinBollServiceStatusView.setServerHost(mszWinBollServerHost);
+// mWinBollServiceStatusView.setAuthInfo(metDevUserName.getText().toString(), metDevUserPassword.getText().toString());
+// //llMain.addView(mDevelopHostConnectionStatusView);
+// llMain.addView(createAboutPage());
+// addView(addedView);
+// } else {
+// LayoutInflater inflater = LayoutInflater.from(mContext);
+// View addedView = inflater.inflate(R.layout.view_about_www, this, false);
+// LinearLayout llMain = addedView.findViewById(R.id.viewaboutwwwLinearLayout1);
+// //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
+// mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutwwwWinBollServiceStatusView1);
+// mWinBollServiceStatusView.setServerHost(mszWinBollServerHost);
+// mWinBollServiceStatusView.setAuthInfo("", "");
+// //llMain.addView(mDevelopHostConnectionStatusView);
+// llMain.addView(createAboutPage());
+// addView(addedView);
+// }
// 初始化标题栏
//setSubtitle(getContext().getString(R.string.text_about));
@@ -165,225 +164,226 @@ public class AboutView extends LinearLayout {
// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
// }
// mszReleaseAPKName = mszAppAPKName + "_" + szReleaseAppVersionName + ".apk";
- }
+
+ // }
void initView(Context context, AttributeSet attrs) {
mAPPInfo = createAppInfo(context, attrs);
initView(context);
}
- public static String subBetaSuffix(String input) {
- if (input.endsWith(".beta")) {
- return input.substring(0, input.length() - ".beta".length());
- }
- return input;
- }
+// public static String subBetaSuffix(String input) {
+// if (input.endsWith(".beta")) {
+// return input.substring(0, input.length() - ".beta".length());
+// }
+// return input;
+// }
+//
+// android.os.Handler mHandler = new android.os.Handler() {
+// @Override
+// public void handleMessage(Message msg) {
+// super.handleMessage(msg);
+// switch (msg.what) {
+// case MSG_APPUPDATE_CHECKED : {
+// /*//检查当前应用包文件名是否是测试版,如果是就忽略检查
+// if(mszCurrentAppPackageName.matches(".*_\\d+\\.\\d+\\.\\d+-beta.*\\.apk")) {
+// ToastUtils.show("APP is the beta Version. Version check ignore.");
+// return;
+// }*/
+//
+//// if (!AppVersionUtils.isHasNewStageReleaseVersion(mszReleaseAPKName, mszNewestAppPackageName)) {
+//// ToastUtils.delayedShow("Current app is the newest.", 5000);
+//// }
+// if (!AppVersionUtils.isHasNewVersion2(mszCurrentAppPackageName, mszNewestAppPackageName)) {
+// ToastUtils.show("Current app is the newest.");
+// } else {
+// String szMsg = "Current app is :\n[ " + mszCurrentAppPackageName
+// + " ]\nThe last app is :\n[ " + mszNewestAppPackageName
+// + " ]\nIs download the last app?";
+// YesNoAlertDialog.show(mContext, "Application Update Prompt", szMsg, mIsDownlaodUpdateListener);
+// }
+// break;
+// }
+// }
+// }
+// };
- android.os.Handler mHandler = new android.os.Handler() {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case MSG_APPUPDATE_CHECKED : {
- /*//检查当前应用包文件名是否是测试版,如果是就忽略检查
- if(mszCurrentAppPackageName.matches(".*_\\d+\\.\\d+\\.\\d+-beta.*\\.apk")) {
- ToastUtils.show("APP is the beta Version. Version check ignore.");
- return;
- }*/
+// protected View createAboutPage() {
+// // 定义应用调试按钮
+// //
+// Element elementAppMode;
+// if (GlobalApplication.isDebuging()) {
+// elementAppMode = new Element(mContext.getString(R.string.app_normal), R.drawable.ic_winboll);
+// elementAppMode.setOnClickListener(mAppNormalOnClickListener);
+// } else {
+// elementAppMode = new Element(mContext.getString(R.string.app_debug), R.drawable.ic_winboll);
+// elementAppMode.setOnClickListener(mAppDebugOnClickListener);
+// }
+// // 定义 GitWeb 按钮
+// //
+// Element elementGitWeb = new Element(mContext.getString(R.string.gitea_home), R.drawable.ic_winboll);
+// elementGitWeb.setOnClickListener(mGitWebOnClickListener);
+// // 定义检查更新按钮
+// //
+// Element elementAppUpdate = new Element(mContext.getString(R.string.app_update), R.drawable.ic_winboll);
+// elementAppUpdate.setOnClickListener(mAppUpdateOnClickListener);
+//
+// String szAppInfo = "";
+// try {
+// szAppInfo = mszAppName + " "
+// + mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName
+// + "\n" + mszAppDescription;
+// } catch (PackageManager.NameNotFoundException e) {
+// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
+// }
+// View aboutPage = new AboutPage(mContext)
+// .setDescription(szAppInfo)
+// //.isRTL(false)
+// //.setCustomFont(String) // or Typeface
+// .setImage(mnAppIcon)
+// //.addItem(versionElement)
+// //.addItem(adsElement)
+// //.addGroup("Connect with us")
+// .addEmail("ZhanGSKen@AliYun.Com")
+// .addWebsite(mszHomePage)
+// .addItem(elementAppMode)
+// .addItem(elementGitWeb)
+// .addItem(elementAppUpdate)
+// //.addFacebook("the.medy")
+// //.addTwitter("medyo80")
+// //.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA")
+// //.addPlayStore("com.ideashower.readitlater.pro")
+// //.addGitHub("medyo")
+// //.addInstagram("medyo80")
+// .create();
+// return aboutPage;
+// }
-// if (!AppVersionUtils.isHasNewStageReleaseVersion(mszReleaseAPKName, mszNewestAppPackageName)) {
-// ToastUtils.delayedShow("Current app is the newest.", 5000);
-// }
- if (!AppVersionUtils.isHasNewVersion2(mszCurrentAppPackageName, mszNewestAppPackageName)) {
- ToastUtils.delayedShow("Current app is the newest.", 5000);
- } else {
- String szMsg = "Current app is :\n[ " + mszCurrentAppPackageName
- + " ]\nThe last app is :\n[ " + mszNewestAppPackageName
- + " ]\nIs download the last app?";
- YesNoAlertDialog.show(mContext, "Application Update Prompt", szMsg, mIsDownlaodUpdateListener);
- }
- break;
- }
- }
- }
- };
-
- protected View createAboutPage() {
- // 定义应用调试按钮
- //
- Element elementAppMode;
- if (GlobalApplication.isDebuging()) {
- elementAppMode = new Element(mContext.getString(R.string.app_normal), R.drawable.ic_winboll);
- elementAppMode.setOnClickListener(mAppNormalOnClickListener);
- } else {
- elementAppMode = new Element(mContext.getString(R.string.app_debug), R.drawable.ic_winboll);
- elementAppMode.setOnClickListener(mAppDebugOnClickListener);
- }
- // 定义 GitWeb 按钮
- //
- Element elementGitWeb = new Element(mContext.getString(R.string.gitea_home), R.drawable.ic_winboll);
- elementGitWeb.setOnClickListener(mGitWebOnClickListener);
- // 定义检查更新按钮
- //
- Element elementAppUpdate = new Element(mContext.getString(R.string.app_update), R.drawable.ic_winboll);
- elementAppUpdate.setOnClickListener(mAppUpdateOnClickListener);
-
- String szAppInfo = "";
- try {
- szAppInfo = mszAppName + " "
- + mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName
- + "\n" + mszAppDescription;
- } catch (PackageManager.NameNotFoundException e) {
- LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
- }
- View aboutPage = new AboutPage(mContext)
- .setDescription(szAppInfo)
- //.isRTL(false)
- //.setCustomFont(String) // or Typeface
- .setImage(mnAppIcon)
- //.addItem(versionElement)
- //.addItem(adsElement)
- //.addGroup("Connect with us")
- .addEmail("ZhanGSKen@AliYun.Com")
- .addWebsite(mszHomePage)
- .addItem(elementAppMode)
- .addItem(elementGitWeb)
- .addItem(elementAppUpdate)
- //.addFacebook("the.medy")
- //.addTwitter("medyo80")
- //.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA")
- //.addPlayStore("com.ideashower.readitlater.pro")
- //.addGitHub("medyo")
- //.addInstagram("medyo80")
- .create();
- return aboutPage;
- }
-
- View.OnClickListener mAppDebugOnClickListener = new View.OnClickListener(){
- @Override
- public void onClick(View view) {
- setApp2DebugMode(mContext);
- }
- };
-
- View.OnClickListener mAppNormalOnClickListener = new View.OnClickListener(){
- @Override
- public void onClick(View view) {
- setApp2NormalMode(mContext);
- }
- };
-
- public static void setApp2DebugMode(Context context) {
- Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
- if (intent != null) {
- intent.setAction(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- GlobalApplication.setIsDebuging(context, true);
- DebugBean.saveBean(context, new DebugBean(true));
-
- WinBollActivityManager.getInstance(context).finishAll();
- context.startActivity(intent);
- }
- }
-
- public static void setApp2NormalMode(Context context) {
- Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
- if (intent != null) {
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- GlobalApplication.setIsDebuging(context, false);
- DebugBean.saveBean(context, new DebugBean(false));
-
- WinBollActivityManager.getInstance(context).finishAll();
- context.startActivity(intent);
- }
- }
-
- View.OnClickListener mGitWebOnClickListener = new View.OnClickListener(){
- @Override
- public void onClick(View view) {
- Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(mszGitea));
- mContext.startActivity(browserIntent);
- }
- };
-
- View.OnClickListener mAppUpdateOnClickListener = new View.OnClickListener(){
- @Override
- public void onClick(View view) {
- ToastUtils.show("Start app update checking.");
- new Thread(new Runnable() {
- @Override
- public void run() {
- String szUrl = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName;
- // 构建包含认证信息的请求
- String credential = "";
- if (GlobalApplication.isDebuging()) {
- credential = Credentials.basic(metDevUserName.getText().toString(), metDevUserPassword.getText().toString());
- PrefUtils.saveString(mContext, "metDevUserName", metDevUserName.getText().toString());
- PrefUtils.saveString(mContext, "metDevUserPassword", metDevUserPassword.getText().toString());
- }
- OkHttpClient client = new OkHttpClient();
- Request request = new Request.Builder()
- .url(szUrl)
- .header("Accept", "text/plain") // 设置正确的Content-Type头
- .header("Authorization", credential)
- .build();
- Call call = client.newCall(request);
- call.enqueue(new Callback() {
- @Override
- public void onFailure(Call call, IOException e) {
- // 处理网络请求失败
- LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
- }
-
- @Override
- public void onResponse(Call call, Response response) throws IOException {
- if (!response.isSuccessful()) {
- LogUtils.d(TAG, "Unexpected code " + response, Thread.currentThread().getStackTrace());
- return;
- }
-
- try {
- // 读取响应体作为字符串,注意这里可能需要解码
- String text = response.body().string();
- org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(text);
- LogUtils.v(TAG, doc.text());
-
- // 使用id选择器找到具有特定id的元素
- org.jsoup.nodes.Element elementWithId = doc.select("#LastRelease").first(); // 获取第一个匹配的元素
-
- // 提取并打印元素的文本内容
- mszNewestAppPackageName = elementWithId.text();
- //ToastUtils.delayedShow(text + "\n" + mszNewestAppPackageName, 5000);
-
- mHandler.sendMessage(mHandler.obtainMessage(MSG_APPUPDATE_CHECKED));
- } catch (Exception e) {
- LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
- }
- }
- });
- }
- }).start();
- }
- };
-
- YesNoAlertDialog.OnDialogResultListener mIsDownlaodUpdateListener = new YesNoAlertDialog.OnDialogResultListener() {
- @Override
- public void onYes() {
- String szUrl = mszWinBollServerHost + "/studio/download.php?appname=" + mszAppAPKFolderName + "&apkname=" + mszNewestAppPackageName;
- Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(szUrl));
- mContext.startActivity(browserIntent);
- }
-
- @Override
- public void onNo() {
- }
- };
-
- public interface OnRequestDevUserInfoAutofillListener {
- void requestAutofill(EditText etDevUserName, EditText etDevUserPassword);
- }
-
- public void setOnRequestDevUserInfoAutofillListener(OnRequestDevUserInfoAutofillListener l) {
- mOnRequestDevUserInfoAutofillListener = l;
- }
+// View.OnClickListener mAppDebugOnClickListener = new View.OnClickListener(){
+// @Override
+// public void onClick(View view) {
+// setApp2DebugMode(mContext);
+// }
+// };
+//
+// View.OnClickListener mAppNormalOnClickListener = new View.OnClickListener(){
+// @Override
+// public void onClick(View view) {
+// setApp2NormalMode(mContext);
+// }
+// };
+//
+// public static void setApp2DebugMode(Context context) {
+// Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
+// if (intent != null) {
+// intent.setAction(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW);
+// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+// GlobalApplication.setIsDebuging(context, true);
+// DebugBean.saveBean(context, new DebugBean(true));
+//
+// WinBollActivityManager.getInstance(context).finishAll();
+// context.startActivity(intent);
+// }
+// }
+//
+// public static void setApp2NormalMode(Context context) {
+// Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
+// if (intent != null) {
+// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+// GlobalApplication.setIsDebuging(context, false);
+// DebugBean.saveBean(context, new DebugBean(false));
+//
+// WinBollActivityManager.getInstance(context).finishAll();
+// context.startActivity(intent);
+// }
+// }
+//
+// View.OnClickListener mGitWebOnClickListener = new View.OnClickListener(){
+// @Override
+// public void onClick(View view) {
+// Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(mszGitea));
+// mContext.startActivity(browserIntent);
+// }
+// };
+//
+// View.OnClickListener mAppUpdateOnClickListener = new View.OnClickListener(){
+// @Override
+// public void onClick(View view) {
+// ToastUtils.show("Start app update checking.");
+// new Thread(new Runnable() {
+// @Override
+// public void run() {
+// String szUrl = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName;
+// // 构建包含认证信息的请求
+// String credential = "";
+// if (GlobalApplication.isDebuging()) {
+// credential = Credentials.basic(metDevUserName.getText().toString(), metDevUserPassword.getText().toString());
+// PrefUtils.saveString(mContext, "metDevUserName", metDevUserName.getText().toString());
+// PrefUtils.saveString(mContext, "metDevUserPassword", metDevUserPassword.getText().toString());
+// }
+// OkHttpClient client = new OkHttpClient();
+// Request request = new Request.Builder()
+// .url(szUrl)
+// .header("Accept", "text/plain") // 设置正确的Content-Type头
+// .header("Authorization", credential)
+// .build();
+// Call call = client.newCall(request);
+// call.enqueue(new Callback() {
+// @Override
+// public void onFailure(Call call, IOException e) {
+// // 处理网络请求失败
+// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
+// }
+//
+// @Override
+// public void onResponse(Call call, Response response) throws IOException {
+// if (!response.isSuccessful()) {
+// LogUtils.d(TAG, "Unexpected code " + response, Thread.currentThread().getStackTrace());
+// return;
+// }
+//
+// try {
+// // 读取响应体作为字符串,注意这里可能需要解码
+// String text = response.body().string();
+// org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(text);
+// LogUtils.v(TAG, doc.text());
+//
+// // 使用id选择器找到具有特定id的元素
+// org.jsoup.nodes.Element elementWithId = doc.select("#LastRelease").first(); // 获取第一个匹配的元素
+//
+// // 提取并打印元素的文本内容
+// mszNewestAppPackageName = elementWithId.text();
+// //ToastUtils.delayedShow(text + "\n" + mszNewestAppPackageName, 5000);
+//
+// mHandler.sendMessage(mHandler.obtainMessage(MSG_APPUPDATE_CHECKED));
+// } catch (Exception e) {
+// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
+// }
+// }
+// });
+// }
+// }).start();
+// }
+// };
+//
+// YesNoAlertDialog.OnDialogResultListener mIsDownlaodUpdateListener = new YesNoAlertDialog.OnDialogResultListener() {
+// @Override
+// public void onYes() {
+// String szUrl = mszWinBollServerHost + "/studio/download.php?appname=" + mszAppAPKFolderName + "&apkname=" + mszNewestAppPackageName;
+// Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(szUrl));
+// mContext.startActivity(browserIntent);
+// }
+//
+// @Override
+// public void onNo() {
+// }
+// };
+//
+// public interface OnRequestDevUserInfoAutofillListener {
+// void requestAutofill(EditText etDevUserName, EditText etDevUserPassword);
+// }
+//
+// public void setOnRequestDevUserInfoAutofillListener(OnRequestDevUserInfoAutofillListener l) {
+// mOnRequestDevUserInfoAutofillListener = l;
+// }
}
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/SimpleWebView.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/SimpleWebView.java
index 15d609a..204f995 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/SimpleWebView.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/SimpleWebView.java
@@ -9,7 +9,6 @@ import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebSettings;
import android.webkit.WebView;
-import com.hjq.toast.ToastUtils;
public class SimpleWebView extends WebView {
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/StringToQrCodeView.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/StringToQrCodeView.java
index cb59b38..48f0e60 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/StringToQrCodeView.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/StringToQrCodeView.java
@@ -5,6 +5,7 @@ package cc.winboll.studio.libapputils.view;
* @Date 2024/12/19 13:49:14
* @Describe 把字符串转化为二维码的视图
*/
+import cc.winboll.studio.libapputils.R;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -13,12 +14,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import cc.winboll.studio.libapputils.R;
import cc.winboll.studio.libapputils.util.QRCodeGenerator;
-import com.google.zxing.Result;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
public class StringToQrCodeView extends LinearLayout {
diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/WinBollServiceStatusView.java b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/WinBollServiceStatusView.java
index d8ca610..f5cebfc 100644
--- a/libapputils/src/main/java/cc/winboll/studio/libapputils/view/WinBollServiceStatusView.java
+++ b/libapputils/src/main/java/cc/winboll/studio/libapputils/view/WinBollServiceStatusView.java
@@ -5,6 +5,7 @@ package cc.winboll.studio.libapputils.view;
* @Date 2024/12/07 20:15:47
* @Describe WinBoll 服务主机连接状态视图
*/
+import cc.winboll.studio.libapputils.R;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -18,22 +19,20 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import androidx.core.content.ContextCompat;
import cc.winboll.studio.libappbase.LogUtils;
-import cc.winboll.studio.libapputils.R;
+import cc.winboll.studio.libappbase.utils.ToastUtils;
import cc.winboll.studio.libapputils.service.IWinBollClientServiceBinder;
import cc.winboll.studio.libapputils.service.WinBollClientService;
import cc.winboll.studio.libapputils.service.WinBollClientServiceBean;
-import com.hjq.toast.ToastUtils;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import okhttp3.Authenticator;
-import okhttp3.Credentials;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Response;
-import okhttp3.Route;
+//import okhttp3.Authenticator;
+//import okhttp3.Credentials;
+//import okhttp3.OkHttpClient;
+//import okhttp3.Request;
+//import okhttp3.Response;
+//import okhttp3.Route;
public class WinBollServiceStatusView extends LinearLayout {
@@ -211,7 +210,7 @@ public class WinBollServiceStatusView extends LinearLayout {
void setImageViewByConnection(ImageView imageView, boolean isConnected) {
//mIsConnected = isConnected;
// 获取vector drawable
- Drawable drawable = ContextCompat.getDrawable(mContext, isConnected ? R.drawable.ic_dev_connected : R.drawable.ic_dev_disconnected);
+ Drawable drawable = mContext.getDrawable(isConnected ? R.drawable.ic_dev_connected : R.drawable.ic_dev_disconnected);
if (drawable != null) {
imageView.setImageDrawable(drawable);
}
@@ -222,49 +221,49 @@ public class WinBollServiceStatusView extends LinearLayout {
//String username = "your_username";
//String password = "your_password";
- OkHttpClient client = new OkHttpClient.Builder()
- .authenticator(new Authenticator() {
- @Override
- public Request authenticate(Route route, Response response) throws IOException {
- String credential = Credentials.basic(username, password);
- return response.request().newBuilder()
- .header("Authorization", credential)
- .build();
- }
- })
- .build();
-
- Request request = new Request.Builder()
- .url(targetUrl) // 替换为实际要请求的网页地址
- .build();
-
- try {
- Response response = client.newCall(request).execute();
- if (response.isSuccessful()) {
- //System.out.println(response.body().string());
- //ToastUtils.show("Develop Host Connection IP is : " + response.body().string());
- // 获取当前时间
- LocalDateTime now = LocalDateTime.now();
-
- // 定义时间格式
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
- // 按照指定格式格式化时间并输出
- String formattedDateTime = now.format(formatter);
- //System.out.println(formattedDateTime);
- textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + response.body().string());
- textViewHandler.postMessageConnectionStatus(true);
- } else {
- String sz = "请求失败,状态码: " + response.code();
- setImageViewByConnection(mImageView, false);
- textViewHandler.postMessageText(sz);
- textViewHandler.postMessageConnectionStatus(false);
- LogUtils.d(TAG, sz);
- }
- } catch (IOException e) {
- textViewHandler.postMessageText(e.getMessage());
- textViewHandler.postMessageConnectionStatus(false);
- LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
- }
+// OkHttpClient client = new OkHttpClient.Builder()
+// .authenticator(new Authenticator() {
+// @Override
+// public Request authenticate(Route route, Response response) throws IOException {
+// String credential = Credentials.basic(username, password);
+// return response.request().newBuilder()
+// .header("Authorization", credential)
+// .build();
+// }
+// })
+// .build();
+//
+// Request request = new Request.Builder()
+// .url(targetUrl) // 替换为实际要请求的网页地址
+// .build();
+//
+// try {
+// Response response = client.newCall(request).execute();
+// if (response.isSuccessful()) {
+// //System.out.println(response.body().string());
+// //ToastUtils.show("Develop Host Connection IP is : " + response.body().string());
+// // 获取当前时间
+// LocalDateTime now = LocalDateTime.now();
+//
+// // 定义时间格式
+// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
+// // 按照指定格式格式化时间并输出
+// String formattedDateTime = now.format(formatter);
+// //System.out.println(formattedDateTime);
+// textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + response.body().string());
+// textViewHandler.postMessageConnectionStatus(true);
+// } else {
+// String sz = "请求失败,状态码: " + response.code();
+// setImageViewByConnection(mImageView, false);
+// textViewHandler.postMessageText(sz);
+// textViewHandler.postMessageConnectionStatus(false);
+// LogUtils.d(TAG, sz);
+// }
+// } catch (IOException e) {
+// textViewHandler.postMessageText(e.getMessage());
+// textViewHandler.postMessageConnectionStatus(false);
+// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
+// }
}
class WinBollServiceViewHandler extends Handler {
diff --git a/libapputils/src/main/res/layout/activity_about.xml b/libapputils/src/main/res/layout/activity_about.xml
index 8fb9075..079a811 100644
--- a/libapputils/src/main/res/layout/activity_about.xml
+++ b/libapputils/src/main/res/layout/activity_about.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
diff --git a/libapputils/src/main/res/layout/activity_assetshtml.xml b/libapputils/src/main/res/layout/activity_assetshtml.xml
index 657c8de..027cee5 100644
--- a/libapputils/src/main/res/layout/activity_assetshtml.xml
+++ b/libapputils/src/main/res/layout/activity_assetshtml.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
diff --git a/libapputils/src/main/res/layout/activity_qrcodedecode.xml b/libapputils/src/main/res/layout/activity_qrcodedecode.xml
index 579120d..d5150e6 100644
--- a/libapputils/src/main/res/layout/activity_qrcodedecode.xml
+++ b/libapputils/src/main/res/layout/activity_qrcodedecode.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
diff --git a/libapputils/src/main/res/layout/view_log.xml b/libapputils/src/main/res/layout/view_log.xml
deleted file mode 100644
index faaf6f7..0000000
--- a/libapputils/src/main/res/layout/view_log.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libapputils/src/main/res/layout/view_logtag.xml b/libapputils/src/main/res/layout/view_logtag.xml
deleted file mode 100644
index 7f1c4ba..0000000
--- a/libapputils/src/main/res/layout/view_logtag.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libapputils/src/main/res/layout/view_toast.xml b/libapputils/src/main/res/layout/view_toast.xml
deleted file mode 100644
index d6a9915..0000000
--- a/libapputils/src/main/res/layout/view_toast.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libapputils/src/main/res/menu/toolbar_studio_debug.xml b/libapputils/src/main/res/menu/toolbar_studio_debug.xml
index a9fd14e..15e95a2 100644
--- a/libapputils/src/main/res/menu/toolbar_studio_debug.xml
+++ b/libapputils/src/main/res/menu/toolbar_studio_debug.xml
@@ -23,8 +23,7 @@
android:title="UnitTest"/>
+ android:title="APPLOG"/>
diff --git a/libapputils/src/main/res/menu/toolbar_winboll_shared_about.xml b/libapputils/src/main/res/menu/toolbar_winboll_shared_about.xml
index 069f86b..b1e40c8 100644
--- a/libapputils/src/main/res/menu/toolbar_winboll_shared_about.xml
+++ b/libapputils/src/main/res/menu/toolbar_winboll_shared_about.xml
@@ -4,6 +4,5 @@
+ android:icon="@drawable/winboll_help"/>
diff --git a/libapputils/src/main/res/menu/toolbar_winboll_shared_main.xml b/libapputils/src/main/res/menu/toolbar_winboll_shared_main.xml
index 051e674..a6328f5 100644
--- a/libapputils/src/main/res/menu/toolbar_winboll_shared_main.xml
+++ b/libapputils/src/main/res/menu/toolbar_winboll_shared_main.xml
@@ -4,11 +4,9 @@
+ android:icon="@drawable/winboll_point"/>
+ android:icon="@drawable/winboll_logo"/>
diff --git a/libapputils/src/main/res/values/styles.xml b/libapputils/src/main/res/values/styles.xml
index 0b97bad..8a061f3 100644
--- a/libapputils/src/main/res/values/styles.xml
+++ b/libapputils/src/main/res/values/styles.xml
@@ -1,17 +1,14 @@
-
-
-
-
-
-