Compare commits

...

7 Commits

Author SHA1 Message Date
ZhanGSKen
4449fe6598 <aes>APK 15.2.6 release Publish. 2025-04-03 11:13:53 +08:00
ZhanGSKen
1e2661f640 更新至精简应用介绍模块资源后的类库 2025-04-03 11:13:05 +08:00
ZhanGSKen
1d2b595859 添加应用介绍窗口调试工具添加开关 2025-04-03 11:04:06 +08:00
ZhanGSKen
4afc4aafa9 <libaes>Library Release 15.2.5 2025-04-02 20:09:13 +08:00
ZhanGSKen
bd6eae16e3 <aes>APK 15.2.5 release Publish. 2025-04-02 20:08:50 +08:00
ZhanGSKen
5b82baead5 修改吐司提示风格 2025-04-02 20:05:52 +08:00
ZhanGSKen
a9ce480f9f 服务器 Http访问验证部分代码整理 2025-04-02 19:44:42 +08:00
11 changed files with 136 additions and 129 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Mon Mar 31 19:41:19 HKT 2025 #Thu Apr 03 11:13:53 HKT 2025
stageCount=5 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.2 baseVersion=15.2
publishVersion=15.2.4 publishVersion=15.2.6
buildCount=0 buildCount=0
baseBetaVersion=15.2.5 baseBetaVersion=15.2.7

View File

@@ -86,6 +86,8 @@ public class AboutActivity extends WinBollActivity implements IWinBollActivity {
appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=AES"); appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=AES");
appInfo.setAppAPKName("AES"); appInfo.setAppAPKName("AES");
appInfo.setAppAPKFolderName("AES"); appInfo.setAppAPKFolderName("AES");
//appInfo.setIsAddDebugTools(false);
appInfo.setIsAddDebugTools(BuildConfig.DEBUG);
return new AboutView(mContext, appInfo); return new AboutView(mContext, appInfo);
} }
} }

View File

@@ -5,19 +5,26 @@ package cc.winboll.studio.aes;
* @Date 2024/06/13 19:03:58 * @Date 2024/06/13 19:03:58
* @Describe AES应用类 * @Describe AES应用类
*/ */
import android.view.Gravity;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import com.hjq.toast.ToastUtils; import com.hjq.toast.ToastUtils;
public class App extends GlobalApplication { public class App extends GlobalApplication {
public static final String TAG = "App"; public static final String TAG = "App";
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
// 初始化 Toast 框架
ToastUtils.init(this); ToastUtils.init(this);
//ToastUtils.show("App onCreate"); // 设置 Toast 布局样式
ToastUtils.setView(R.layout.view_toast);
//ToastUtils.setStyle(new WhiteToastStyle());
ToastUtils.setGravity(Gravity.BOTTOM, 0, 200);
} }
} }

View File

@@ -51,6 +51,6 @@ dependencies {
//api 'androidx.vectordrawable:vectordrawable-animated:1.1.0' //api 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
//api 'androidx.fragment:fragment:1.1.0' //api 'androidx.fragment:fragment:1.1.0'
api 'cc.winboll.studio:libapputils:15.2.1' api 'cc.winboll.studio:libapputils:15.2.2'
api 'cc.winboll.studio:libappbase:15.2.2' api 'cc.winboll.studio:libappbase:15.2.2'
} }

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Mon Mar 31 19:41:08 HKT 2025 #Thu Apr 03 11:13:53 HKT 2025
stageCount=5 stageCount=7
libraryProject=libaes libraryProject=libaes
baseVersion=15.2 baseVersion=15.2
publishVersion=15.2.4 publishVersion=15.2.6
buildCount=0 buildCount=0
baseBetaVersion=15.2.5 baseBetaVersion=15.2.7

View File

@@ -32,7 +32,9 @@ public class APPInfo implements Serializable {
String appAPKName; String appAPKName;
// 应用包存储文件夹名称 // 应用包存储文件夹名称
String appAPKFolderName; String appAPKFolderName;
// 是否添加调试工具
boolean isAddDebugTools;
public APPInfo(String appName, int appIcon, String appDescription, String appGitName, String appGitOwner, String appGitAPPBranch, String appGitAPPSubProjectFolder, String appHomePage, String appAPKName, String appAPKFolderName) { public APPInfo(String appName, int appIcon, String appDescription, String appGitName, String appGitOwner, String appGitAPPBranch, String appGitAPPSubProjectFolder, String appHomePage, String appAPKName, String appAPKFolderName) {
this.appName = appName; this.appName = appName;
this.appIcon = appIcon; this.appIcon = appIcon;
@@ -44,6 +46,21 @@ public class APPInfo implements Serializable {
this.appHomePage = appHomePage; this.appHomePage = appHomePage;
this.appAPKName = appAPKName; this.appAPKName = appAPKName;
this.appAPKFolderName = appAPKFolderName; this.appAPKFolderName = appAPKFolderName;
this.isAddDebugTools = false;
}
public APPInfo(String appName, int appIcon, String appDescription, String appGitName, String appGitOwner, String appGitAPPBranch, String appGitAPPSubProjectFolder, String appHomePage, String appAPKName, String appAPKFolderName, boolean isAddDebugTools) {
this.appName = appName;
this.appIcon = appIcon;
this.appDescription = appDescription;
this.appGitName = appGitName;
this.appGitOwner = appGitOwner;
this.appGitAPPBranch = appGitAPPBranch;
this.appGitAPPSubProjectFolder = appGitAPPSubProjectFolder;
this.appHomePage = appHomePage;
this.appAPKName = appAPKName;
this.appAPKFolderName = appAPKFolderName;
this.isAddDebugTools = isAddDebugTools;
} }
public APPInfo() { public APPInfo() {
@@ -58,6 +75,15 @@ public class APPInfo implements Serializable {
this.appHomePage = "https://www.winboll.cc/studio/details.php?app=APP"; this.appHomePage = "https://www.winboll.cc/studio/details.php?app=APP";
this.appAPKName = "APP"; this.appAPKName = "APP";
this.appAPKFolderName = "APP"; this.appAPKFolderName = "APP";
this.isAddDebugTools = false;
}
public void setIsAddDebugTools(boolean isAddDebugTools) {
this.isAddDebugTools = isAddDebugTools;
}
public boolean isAddDebugTools() {
return isAddDebugTools;
} }
public void setAppGitOwner(String appGitOwner) { public void setAppGitOwner(String appGitOwner) {

View File

@@ -32,6 +32,7 @@ import okhttp3.Credentials;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import mehdi.sakout.aboutpage.BuildConfig;
public class AboutView extends LinearLayout { public class AboutView extends LinearLayout {
@@ -50,6 +51,7 @@ public class AboutView extends LinearLayout {
String mszAppGitName = ""; String mszAppGitName = "";
String mszAppVersionName = ""; String mszAppVersionName = "";
String mszCurrentAppPackageName = ""; String mszCurrentAppPackageName = "";
boolean mIsAddDebugTools;
volatile String mszNewestAppPackageName = ""; volatile String mszNewestAppPackageName = "";
String mszAppDescription = ""; String mszAppDescription = "";
String mszHomePage = ""; String mszHomePage = "";
@@ -91,6 +93,7 @@ public class AboutView extends LinearLayout {
appInfo.setAppGitAPPSubProjectFolder(typedArray.getString(R.styleable.AboutView_app_gitappsubprojectfolder)); appInfo.setAppGitAPPSubProjectFolder(typedArray.getString(R.styleable.AboutView_app_gitappsubprojectfolder));
appInfo.setAppDescription(typedArray.getString(R.styleable.AboutView_appdescription)); appInfo.setAppDescription(typedArray.getString(R.styleable.AboutView_appdescription));
appInfo.setAppIcon(typedArray.getResourceId(R.styleable.AboutView_appicon, R.drawable.ic_winboll)); appInfo.setAppIcon(typedArray.getResourceId(R.styleable.AboutView_appicon, R.drawable.ic_winboll));
appInfo.setIsAddDebugTools(typedArray.getBoolean(R.styleable.AboutView_is_adddebugtools, false));
// 返回一个绑定资源结束的信号给资源 // 返回一个绑定资源结束的信号给资源
typedArray.recycle(); typedArray.recycle();
return appInfo; return appInfo;
@@ -118,7 +121,7 @@ public class AboutView extends LinearLayout {
} else { } else {
mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder(); mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder();
} }
if (GlobalApplication.isDebuging()) { if (GlobalApplication.isDebuging()) {
LayoutInflater inflater = LayoutInflater.from(mContext); LayoutInflater inflater = LayoutInflater.from(mContext);
@@ -150,7 +153,7 @@ public class AboutView extends LinearLayout {
// 初始化标题栏 // 初始化标题栏
//setSubtitle(getContext().getString(R.string.text_about)); //setSubtitle(getContext().getString(R.string.text_about));
// LinearLayout llMain = findViewById(R.id.viewaboutLinearLayout1); // LinearLayout llMain = findViewById(R.id.viewaboutLinearLayout1);
// llMain.addView(createAboutPage()); // llMain.addView(createAboutPage());
@@ -210,16 +213,6 @@ public class AboutView extends LinearLayout {
}; };
protected View createAboutPage() { 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 按钮 // 定义 GitWeb 按钮
// //
Element elementGitWeb = new Element(mContext.getString(R.string.gitea_home), R.drawable.ic_winboll); Element elementGitWeb = new Element(mContext.getString(R.string.gitea_home), R.drawable.ic_winboll);
@@ -237,8 +230,8 @@ public class AboutView extends LinearLayout {
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
} }
View aboutPage = new AboutPage(mContext) AboutPage aboutPage = new AboutPage(mContext);
.setDescription(szAppInfo) aboutPage.setDescription(szAppInfo)
//.isRTL(false) //.isRTL(false)
//.setCustomFont(String) // or Typeface //.setCustomFont(String) // or Typeface
.setImage(mnAppIcon) .setImage(mnAppIcon)
@@ -247,17 +240,31 @@ public class AboutView extends LinearLayout {
//.addGroup("Connect with us") //.addGroup("Connect with us")
.addEmail("ZhanGSKen@AliYun.Com") .addEmail("ZhanGSKen@AliYun.Com")
.addWebsite(mszHomePage) .addWebsite(mszHomePage)
.addItem(elementAppMode)
.addItem(elementGitWeb) .addItem(elementGitWeb)
.addItem(elementAppUpdate) .addItem(elementAppUpdate);
//.addFacebook("the.medy") //.addFacebook("the.medy")
//.addTwitter("medyo80") //.addTwitter("medyo80")
//.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA") //.addYoutube("UCdPQtdWIsg7_pi4mrRu46vA")
//.addPlayStore("com.ideashower.readitlater.pro") //.addPlayStore("com.ideashower.readitlater.pro")
//.addGitHub("medyo") //.addGitHub("medyo")
//.addInstagram("medyo80") //.addInstagram("medyo80")
.create(); //.create();
return aboutPage;
if (mAPPInfo.isAddDebugTools()) {
// 定义应用调试按钮
//
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);
}
aboutPage.addItem(elementAppMode);
}
return aboutPage.create();
} }
View.OnClickListener mAppDebugOnClickListener = new View.OnClickListener(){ View.OnClickListener mAppDebugOnClickListener = new View.OnClickListener(){
@@ -324,14 +331,17 @@ public class AboutView extends LinearLayout {
PrefUtils.saveString(mContext, "metDevUserName", metDevUserName.getText().toString()); PrefUtils.saveString(mContext, "metDevUserName", metDevUserName.getText().toString());
PrefUtils.saveString(mContext, "metDevUserPassword", metDevUserPassword.getText().toString()); PrefUtils.saveString(mContext, "metDevUserPassword", metDevUserPassword.getText().toString());
} else { } else {
credential = Credentials.basic("WinBoll", "WinBollPowerByZhanGSKen"); String username = "WinBoll";
String password = "WinBollPowerByZhanGSKen";
credential = Credentials.basic(username, password);
} }
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() Request request = new Request.Builder()
.url(szUrl) .url(szUrl)
.header("Accept", "text/plain") // 设置正确的Content-Type头 .header("Accept", "text/plain") // 设置正确的Content-Type头
.header("Authorization", credential) .header("Authorization", credential)
.build(); .build();
OkHttpClient client = new OkHttpClient();
Call call = client.newCall(request); Call call = client.newCall(request);
call.enqueue(new Callback() { call.enqueue(new Callback() {
@Override @Override

View File

@@ -252,6 +252,7 @@ public class WinBollServiceStatusView extends LinearLayout {
username = "WinBoll"; username = "WinBoll";
password = "WinBollPowerByZhanGSKen"; password = "WinBollPowerByZhanGSKen";
} }
LogUtils.d(TAG, String.format("Connection Start. targetUrl %s", targetUrl)); LogUtils.d(TAG, String.format("Connection Start. targetUrl %s", targetUrl));
WinBollServerConnectionThread thread = new WinBollServerConnectionThread( WinBollServerConnectionThread thread = new WinBollServerConnectionThread(
targetUrl, targetUrl,

View File

@@ -1,62 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <shape xmlns:android="http://schemas.android.com/apk/res/android"
<!-- 边框阴影部分 --> android:shape="rectangle">
<!-- 相对边框的Offset设置(android:left, top, right, bottom) --> <solid android:color="#BF4C4C4C" />
<item <!-- 定义成圆角的 -->
android:left="0dp" <corners android:radius="15dp" />
android:top="0dp" </shape>
android:right="0dp"
android:bottom="0dp">
<shape android:shape="rectangle" >
<gradient
android:angle="270"
android:startColor="@color/colorToastShadow"
android:centerColor="@color/colorToastShadow"
android:endColor="@color/colorToastShadow"/>
<corners
android:bottomLeftRadius="10dip"
android:bottomRightRadius="10dip"
android:topLeftRadius="10dip"
android:topRightRadius="10dip" />
</shape>
</item>
<!-- 边框部分 -->
<item
android:left="0dp"
android:top="0dp"
android:right="1dp"
android:bottom="2dp">
<shape android:shape="rectangle" >
<gradient
android:angle="270"
android:startColor="@color/colorToastFrame"
android:centerColor="@color/colorToastFrame"
android:endColor="@color/colorToastFrame"/>
<corners
android:bottomLeftRadius="10dip"
android:bottomRightRadius="10dip"
android:topLeftRadius="10dip"
android:topRightRadius="10dip" />
</shape>
</item>
<!-- 背景主体部分 -->
<item
android:left="2dp"
android:top="2dp"
android:right="3dp"
android:bottom="3dp">
<shape android:shape="rectangle" >
<gradient
android:type="linear"
android:angle="90"
android:startColor="@color/colorToastBackgroung"
android:centerColor="@color/colorToastBackgroung"
android:endColor="@color/colorToastBackgroung"/>
<corners
android:bottomLeftRadius="10dip"
android:bottomRightRadius="10dip"
android:topLeftRadius="10dip"
android:topRightRadius="10dip" />
</shape>
</item>
</layer-list>

View File

@@ -1,35 +1,38 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:background="@drawable/toast_frame" android:background="@drawable/toast_frame"
android:padding="10dp"> android:padding="10dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="14sp" android:text="@string/app_name"
android:textStyle="bold" android:textStyle="bold"
android:id="@+id/customtoastTextView1" android:textColor="#FFFFFFFF"/>
android:background="#FFFFFFFF"
android:gravity="center_horizontal"/>
<View <LinearLayout
android:layout_width="match_parent" android:orientation="horizontal"
android:layout_height="1dp" android:layout_width="wrap_content"
android:background="#FFE8E8E8"/> android:layout_height="wrap_content">
<TextView <ImageView
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="40dp"
android:textSize="14sp" android:src="@drawable/ic_launcher"/>
android:text="Text"
android:id="@+id/customtoastTextView2" <TextView
android:background="#FFFFFFFF" android:id="@android:id/message"
android:gravity="center_horizontal"/> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textColor="#FFFFFFFF"/>
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,20 @@
<attr name="attrAToolbarStartColor" format="color" /> <attr name="attrAToolbarStartColor" format="color" />
<attr name="attrAToolbarCenterColor" format="color" /> <attr name="attrAToolbarCenterColor" format="color" />
<attr name="attrAToolbarEndColor" format="color" /> <attr name="attrAToolbarEndColor" format="color" />
<declare-styleable name="AboutView">
<attr name="app_name" format="string" />
<attr name="app_apkfoldername" format="string" />
<attr name="app_apkname" format="string" />
<attr name="app_gitname" format="string" />
<attr name="app_gitowner" format="string" />
<attr name="app_gitappbranch" format="string" />
<attr name="app_gitappsubprojectfolder" format="string" />
<attr name="appdescription" format="string" />
<attr name="appicon" format="reference" />
<attr name="is_adddebugtools" format="boolean" />
</declare-styleable>
<declare-styleable name="AToolbar"> <declare-styleable name="AToolbar">
<attr name="attrAToolbarTitleTextColor"/> <attr name="attrAToolbarTitleTextColor"/>
<attr name="attrAToolbarStartColor"/> <attr name="attrAToolbarStartColor"/>