Compare commits

..

7 Commits

Author SHA1 Message Date
998cb3d193 <winboll>APK 15.20.0 release Publish. 2026-05-12 12:16:45 +08:00
9ba3374b16 基线版本号对齐 2026-05-12 12:11:17 +08:00
4ded8537e8 升级 WinBoLL 库依赖版本并完善应用主题配置
- 升级 WinBoLL 库依赖版本至 15.20.x 系列:
  - libaes: 15.15.10 → 15.20.2
  - libappbase: 15.15.23 → 15.20.9
- 完善 winboll 模块主题配置:
  - MyAppTheme 改用 Theme.AppCompat.Light.NoActionBar 解决 AppCompat 兼容问题
  - 添加完整的应用主题属性定义
  - 添加 MyDebugActivityTheme 调试主题
- 添加主窗口、工具栏、调试文字颜色定义
2026-05-12 12:05:28 +08:00
59e51da991 Merge remote-tracking branch 'origin/aes' into winboll 2026-05-12 11:42:13 +08:00
070e2fb4f0 Merge remote-tracking branch 'origin/appbase' into winboll 2026-05-12 11:42:07 +08:00
83da84371c Merge remote-tracking branch 'origin/aes' into winboll 2026-05-11 20:59:23 +08:00
8f869e19cc 更新基础类库 2026-05-10 05:12:19 +08:00
10 changed files with 164 additions and 72 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Tue May 12 13:11:09 HKT 2026 #Tue May 12 10:47:54 CST 2026
stageCount=4 stageCount=3
libraryProject=libaes libraryProject=libaes
baseVersion=15.20 baseVersion=15.20
publishVersion=15.20.3 publishVersion=15.20.2
buildCount=0 buildCount=14
baseBetaVersion=15.20.4 baseBetaVersion=15.20.3

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Tue May 12 13:11:09 HKT 2026 #Tue May 12 10:47:54 CST 2026
stageCount=4 stageCount=3
libraryProject=libaes libraryProject=libaes
baseVersion=15.20 baseVersion=15.20
publishVersion=15.20.3 publishVersion=15.20.2
buildCount=0 buildCount=14
baseBetaVersion=15.20.4 baseBetaVersion=15.20.3

View File

@@ -31,6 +31,7 @@ import cc.winboll.studio.libaes.utils.DevelopUtils;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.libaes.views.ADrawerMenuListView; import cc.winboll.studio.libaes.views.ADrawerMenuListView;
import cc.winboll.studio.libaes.views.ADsBannerView; import cc.winboll.studio.libaes.views.ADsBannerView;
import cc.winboll.studio.libaes.views.ASupportToolbar;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import com.baoyz.widget.PullRefreshLayout; import com.baoyz.widget.PullRefreshLayout;
@@ -174,6 +175,9 @@ public abstract class DrawerFragmentActivity extends AppCompatActivity implement
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
if (AESThemeUtil.onAppThemeItemSelected(this, item)) { if (AESThemeUtil.onAppThemeItemSelected(this, item)) {
if (mToolbar instanceof ASupportToolbar) {
((ASupportToolbar) mToolbar).refreshFromTheme();
}
recreate(); recreate();
} if (DevelopUtils.onDevelopItemSelected(this, item)) { } if (DevelopUtils.onDevelopItemSelected(this, item)) {
LogUtils.d(TAG, String.format("onOptionsItemSelected item.getItemId() %d ", item.getItemId())); LogUtils.d(TAG, String.format("onOptionsItemSelected item.getItemId() %d ", item.getItemId()));

View File

@@ -7,15 +7,12 @@ package cc.winboll.studio.libaes.views;
*/ */
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.LayerDrawable;
import android.util.AttributeSet; import android.util.AttributeSet;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libaes.R; import cc.winboll.studio.libaes.R;
import android.graphics.drawable.Drawable; import cc.winboll.studio.libappbase.LogUtils;
import androidx.core.content.ContextCompat;
import android.graphics.PorterDuff;
public class ASupportToolbar extends Toolbar { public class ASupportToolbar extends Toolbar {
@@ -25,65 +22,120 @@ public class ASupportToolbar extends Toolbar {
int mStartColor; int mStartColor;
int mCenterColor; int mCenterColor;
int mEndColor; int mEndColor;
LayerDrawable ld;
GradientDrawable[] array = new GradientDrawable[3]; GradientDrawable[] array = new GradientDrawable[3];
//private GradientDrawable gradientDrawable; LayerDrawable ld;
public ASupportToolbar(Context context) { public ASupportToolbar(Context context) {
super(context); super(context);
LogUtils.d(TAG, "ASupportToolbar() constructor");
} }
public ASupportToolbar(Context context, AttributeSet attrs) { public ASupportToolbar(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ASupportToolbar, R.attr.aSupportToolbar, 0); LogUtils.d(TAG, "ASupportToolbar() attrs constructor");
mTitleTextColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarTitleTextColor, Color.GREEN); initStyledAttributes(attrs, R.attr.aSupportToolbar);
mStartColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarStartColor, Color.BLUE);
mCenterColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarCenterColor, Color.RED);
mEndColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarEndColor, Color.YELLOW);
// 返回一个绑定资源结束的信号给资源
a.recycle();
notifyColorChange();
} }
public ASupportToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
LogUtils.d(TAG, "ASupportToolbar() attrs defStyleAttr constructor");
initStyledAttributes(attrs, defStyleAttr);
}
void initStyledAttributes(AttributeSet attrs, int defStyleAttr) {
LogUtils.d(TAG, "initStyledAttributes() start");
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ASupportToolbar, defStyleAttr, 0);
mTitleTextColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarTitleTextColor, 0xFF00FF00);
mStartColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarStartColor, 0xFF03AB4E);
mCenterColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarCenterColor, 0xFF03AB4E);
mEndColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarEndColor, 0xFF3DDC84);
LogUtils.d(TAG, String.format("initStyledAttributes() colors: title=0x%x, start=0x%x, center=0x%x, end=0x%x", mTitleTextColor, mStartColor, mCenterColor, mEndColor));
a.recycle();
setTitleTextColor(mTitleTextColor);
LogUtils.d(TAG, "initStyledAttributes() end");
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
LogUtils.d(TAG, "onAttachedToWindow() start");
refreshFromTheme();
LogUtils.d(TAG, "onAttachedToWindow() end");
}
public void refreshFromTheme() {
LogUtils.d(TAG, "refreshFromTheme() start");
TypedArray a = getContext().obtainStyledAttributes(R.styleable.ASupportToolbar);
try {
mTitleTextColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarTitleTextColor, 0xFF00FF00);
mStartColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarStartColor, 0xFF03AB4E);
mCenterColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarCenterColor, 0xFF03AB4E);
mEndColor = a.getColor(R.styleable.ASupportToolbar_attrASupportToolbarEndColor, 0xFF3DDC84);
LogUtils.d(TAG, String.format("refreshFromTheme() colors: title=0x%x, start=0x%x, center=0x%x, end=0x%x", mTitleTextColor, mStartColor, mCenterColor, mEndColor));
} finally {
a.recycle();
}
postNotifyColorChange();
LogUtils.d(TAG, "refreshFromTheme() end");
}
void postNotifyColorChange() {
LogUtils.d(TAG, "postNotifyColorChange()");
removeCallbacks(mRefreshRunnable);
post(mRefreshRunnable);
}
Runnable mRefreshRunnable = new Runnable() {
@Override
public void run() {
LogUtils.d(TAG, "mRefreshRunnable.run() start");
notifyColorChange();
LogUtils.d(TAG, "mRefreshRunnable.run() end");
}
};
void notifyColorChange() { void notifyColorChange() {
// 工具栏描边 LogUtils.d(TAG, "notifyColorChange() start");
LogUtils.d(TAG, String.format("notifyColorChange() size: width=%d, height=%d", getWidth(), getHeight()));
int nWidth = getWidth();
int nHeight = getHeight();
if (nWidth == 0 || nHeight == 0) {
LogUtils.d(TAG, "notifyColorChange() skipped: width or height is 0");
return;
}
int nStroke = 5; int nStroke = 5;
//分别为开始颜色,中间夜色,结束颜色 int colors0[] = { mEndColor , mCenterColor, mStartColor };
int colors0[] = { mEndColor , mCenterColor, mStartColor};
GradientDrawable gradientDrawable0;
array[2] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors0); array[2] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors0);
gradientDrawable0 = array[2]; array[2].setShape(GradientDrawable.RECTANGLE);
gradientDrawable0.setShape(GradientDrawable.RECTANGLE); array[2].setColors(colors0);
gradientDrawable0.setColors(colors0); //添加颜色组 array[2].setGradientType(GradientDrawable.LINEAR_GRADIENT);
gradientDrawable0.setGradientType(GradientDrawable.LINEAR_GRADIENT);//设置线性渐变 array[2].setCornerRadius(20);
gradientDrawable0.setCornerRadius(20);
int colors1[] = { mCenterColor , mCenterColor, mCenterColor }; int colors1[] = { mCenterColor, mCenterColor, mCenterColor };
GradientDrawable gradientDrawable1;
array[1] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors1); array[1] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors1);
gradientDrawable1 = array[1]; array[1].setShape(GradientDrawable.RECTANGLE);
gradientDrawable1.setShape(GradientDrawable.RECTANGLE); array[1].setColors(colors1);
gradientDrawable1.setColors(colors1); //添加颜色组 array[1].setGradientType(GradientDrawable.LINEAR_GRADIENT);
gradientDrawable1.setGradientType(GradientDrawable.LINEAR_GRADIENT);//设置线性渐变 array[1].setCornerRadius(20);
gradientDrawable1.setCornerRadius(20);
int colors2[] = { mEndColor, mCenterColor, mStartColor }; int colors2[] = { mEndColor, mCenterColor, mStartColor };
GradientDrawable gradientDrawable2;
array[0] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors2); array[0] = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors2);
gradientDrawable2 = array[0]; array[0].setShape(GradientDrawable.RECTANGLE);
gradientDrawable2.setShape(GradientDrawable.RECTANGLE); array[0].setColors(colors2);
gradientDrawable2.setColors(colors2); //添加颜色组 array[0].setGradientType(GradientDrawable.LINEAR_GRADIENT);
gradientDrawable2.setGradientType(GradientDrawable.LINEAR_GRADIENT);//设置线性渐变 array[0].setCornerRadius(20);
gradientDrawable2.setCornerRadius(20);
ld = new LayerDrawable(array); //参数为上面的Drawable数组 ld = new LayerDrawable(array);
ld.setLayerInset(2, nStroke * 2, nStroke * 2, getWidth() + nStroke * 2, getHeight() + nStroke * 2); ld.setLayerInset(2, nStroke * 2, nStroke * 2, nWidth + nStroke * 2, nHeight + nStroke * 2);
ld.setLayerInset(1, nStroke, nStroke, getWidth() + nStroke, getHeight() + nStroke); ld.setLayerInset(1, nStroke, nStroke, nWidth + nStroke, nHeight + nStroke);
ld.setLayerInset(0, 0, 0, getWidth(), getHeight()); ld.setLayerInset(0, 0, 0, nWidth, nHeight);
setBackgroundDrawable(ld); setBackgroundDrawable(ld);
setTitleTextColor(mTitleTextColor); setTitleTextColor(mTitleTextColor);
setSubtitleTextColor(mTitleTextColor); setSubtitleTextColor(mTitleTextColor);
LogUtils.d(TAG, "notifyColorChange() end");
} }
} }

View File

@@ -31,8 +31,8 @@ dependencies {
api 'com.jcraft:jsch:0.1.54' api 'com.jcraft:jsch:0.1.54'
// WinBoLL库 nexus.winboll.cc 地址 // WinBoLL库 nexus.winboll.cc 地址
api 'cc.winboll.studio:libaes:15.15.2' api 'cc.winboll.studio:libaes:15.20.2'
api 'cc.winboll.studio:libappbase:15.15.11' api 'cc.winboll.studio:libappbase:15.20.9'
api fileTree(dir: 'libs', include: ['*.jar']) api fileTree(dir: 'libs', include: ['*.jar'])
} }

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Sat May 09 19:01:46 GMT 2026 #Tue May 12 12:16:45 HKT 2026
stageCount=27 stageCount=1
libraryProject=libwinboll libraryProject=libwinboll
baseVersion=15.11 baseVersion=15.20
publishVersion=15.11.26 publishVersion=15.20.0
buildCount=29 buildCount=0
baseBetaVersion=15.11.27 baseBetaVersion=15.20.1

View File

@@ -31,7 +31,7 @@ android {
// versionName 更新后需要手动设置 // versionName 更新后需要手动设置
// .winboll/winbollBuildProps.properties 文件的 stageCount=0 // .winboll/winbollBuildProps.properties 文件的 stageCount=0
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
versionName "15.11" versionName "15.20"
if(true) { if(true) {
versionName = genVersionName("${versionName}") versionName = genVersionName("${versionName}")
} }
@@ -109,8 +109,8 @@ dependencies {
implementation 'com.termux:termux-shared:0.118.0' implementation 'com.termux:termux-shared:0.118.0'
// WinBoLL库 nexus.winboll.cc 地址 // WinBoLL库 nexus.winboll.cc 地址
api 'cc.winboll.studio:libaes:15.15.2' api 'cc.winboll.studio:libaes:15.20.2'
api 'cc.winboll.studio:libappbase:15.15.11' api 'cc.winboll.studio:libappbase:15.20.9'
// WinBoLL备用库 jitpack.io 地址 // WinBoLL备用库 jitpack.io 地址
//api 'com.github.ZhanGSKen:AES:aes-v15.15.7' //api 'com.github.ZhanGSKen:AES:aes-v15.15.7'

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Sat May 09 19:01:46 GMT 2026 #Tue May 12 12:16:45 HKT 2026
stageCount=27 stageCount=1
libraryProject=libwinboll libraryProject=libwinboll
baseVersion=15.11 baseVersion=15.20
publishVersion=15.11.26 publishVersion=15.20.0
buildCount=29 buildCount=0
baseBetaVersion=15.11.27 baseBetaVersion=15.20.1

View File

@@ -4,4 +4,10 @@
<color name="colorPrimaryDark">#00796B</color> <color name="colorPrimaryDark">#00796B</color>
<color name="colorAccent">#FF9800</color> <color name="colorAccent">#FF9800</color>
<color name="pattern_lock_black">#000000</color> <color name="pattern_lock_black">#000000</color>
<color name="mainWindowBackgroundColor">#FFF5F5F5</color>
<color name="mainWindowTextColor">#FF000000</color>
<color name="toolbarTextColor">#FF000000</color>
<color name="toolbarBackgroundColor">#FF00B322</color>
<color name="debugTextColor">#FF808080</color>
</resources> </resources>

View File

@@ -1,5 +1,35 @@
<resources> <resources>
<style name="MyAppTheme" parent="AESTheme"> <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="themeDebug">@style/MyDebugActivityTheme</item>
<item name="aboutViewBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="aboutViewTextColor">@color/mainWindowTextColor</item>
<item name="aboutViewTitleColor">@color/mainWindowTextColor</item>
<item name="aboutViewDividerColor">@color/mainWindowTextColor</item>
<item name="dialogBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="dialogTextColor">@color/mainWindowTextColor</item>
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item>
<item name="textViewBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="textViewTextColor">@color/mainWindowTextColor</item>
<item name="editTextBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="editTextTextColor">@color/mainWindowTextColor</item>
<item name="scrollViewBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="activityBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="activityTextColor">@color/mainWindowTextColor</item>
<item name="mainWindowBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="mainWindowTextColor">@color/mainWindowTextColor</item>
<item name="mainWindowDarkBackgroundColor">@color/mainWindowBackgroundColor</item>
<item name="mainWindowDarkTextColor">@color/mainWindowTextColor</item>
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
</style>
<style name="MyDebugActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
<item name="colorTittle">@color/mainWindowTextColor</item>
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
<item name="colorText">@color/debugTextColor</item>
<item name="colorTextBackgound">@color/mainWindowBackgroundColor</item>
<item name="debugTextColor">@color/debugTextColor</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item>
</style> </style>
</resources> </resources>