应用主题风格化

This commit is contained in:
2025-12-07 15:07:31 +08:00
parent 1db438e231
commit 8fd955af73
16 changed files with 181 additions and 164 deletions

View File

@@ -87,7 +87,7 @@ dependencies {
//api 'cc.winboll.studio:libappbase:15.12.2' //api 'cc.winboll.studio:libappbase:15.12.2'
// WinBoLL备用库 jitpack.io 地址 // WinBoLL备用库 jitpack.io 地址
api 'com.github.ZhanGSKen:AES:aes-v15.12.1' api 'com.github.ZhanGSKen:AES:aes-v15.12.3'
api 'com.github.ZhanGSKen:APPBase:appbase-v15.12.2' api 'com.github.ZhanGSKen:APPBase:appbase-v15.12.2'
//api fileTree(dir: 'libs', include: ['*.aar']) //api fileTree(dir: 'libs', include: ['*.aar'])

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Sun Dec 07 03:24:36 GMT 2025 #Sun Dec 07 07:06:07 GMT 2025
stageCount=1 stageCount=1
libraryProject= libraryProject=
baseVersion=15.12 baseVersion=15.12
publishVersion=15.12.0 publishVersion=15.12.0
buildCount=7 buildCount=29
baseBetaVersion=15.12.1 baseBetaVersion=15.12.1

View File

@@ -208,8 +208,6 @@
<activity android:name="cc.winboll.studio.powerbell.activities.BatteryReporterActivity"/> <activity android:name="cc.winboll.studio.powerbell.activities.BatteryReporterActivity"/>
<activity android:name="cc.winboll.studio.powerbell.activities.AboutActivity"/>
<activity android:name="cc.winboll.studio.powerbell.activities.PixelPickerActivity"/> <activity android:name="cc.winboll.studio.powerbell.activities.PixelPickerActivity"/>
<activity android:name="cc.winboll.studio.powerbell.activities.BatteryReportActivity"/> <activity android:name="cc.winboll.studio.powerbell.activities.BatteryReportActivity"/>

View File

@@ -2,6 +2,7 @@ package cc.winboll.studio.powerbell;
import android.content.Context; import android.content.Context;
import android.os.Environment; import android.os.Environment;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.powerbell.receivers.GlobalApplicationReceiver; import cc.winboll.studio.powerbell.receivers.GlobalApplicationReceiver;
@@ -12,14 +13,14 @@ import java.io.File;
public class App extends GlobalApplication { public class App extends GlobalApplication {
public static final String TAG = "App"; public static final String TAG = "App";
public static final String COMPONENT_EN1 = "cc.winboll.studio.powerbell.MainActivityEN1"; public static final String COMPONENT_EN1 = "cc.winboll.studio.powerbell.MainActivityEN1";
public static final String COMPONENT_CN1 = "cc.winboll.studio.powerbell.MainActivityCN1"; public static final String COMPONENT_CN1 = "cc.winboll.studio.powerbell.MainActivityCN1";
public static final String COMPONENT_CN2 = "cc.winboll.studio.powerbell.MainActivityCN2"; public static final String COMPONENT_CN2 = "cc.winboll.studio.powerbell.MainActivityCN2";
public static final String ACTION_SWITCHTO_EN1 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_EN1"; public static final String ACTION_SWITCHTO_EN1 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_EN1";
public static final String ACTION_SWITCHTO_CN1 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_CN1"; public static final String ACTION_SWITCHTO_CN1 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_CN1";
public static final String ACTION_SWITCHTO_CN2 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_CN2"; public static final String ACTION_SWITCHTO_CN2 = "cc.winboll.studio.powerbell.App.ACTION_SWITCHTO_CN2";
// 数据配置存储工具 // 数据配置存储工具
static AppConfigUtils _mAppConfigUtils; static AppConfigUtils _mAppConfigUtils;
static AppCacheUtils _mAppCacheUtils; static AppCacheUtils _mAppCacheUtils;
@@ -36,12 +37,17 @@ public class App extends GlobalApplication {
setIsDebugging(BuildConfig.DEBUG); setIsDebugging(BuildConfig.DEBUG);
//setIsDebugging(false); //setIsDebugging(false);
// 初始化活动窗口管理
WinBoLLActivityManager.init(this);
// 初始化 Toast 框架
ToastUtils.init(this);
// 临时文件夹方案1 // 临时文件夹方案1
// 获取Pictures文件夹路径Android 10及以上推荐使用MediaStore此处为传统方式 // 获取Pictures文件夹路径Android 10及以上推荐使用MediaStore此处为传统方式
File picturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); File picturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
// 定义目标文件路径在Pictures目录下创建"PowerBell"子文件夹及文件) // 定义目标文件路径在Pictures目录下创建"PowerBell"子文件夹及文件)
File powerBellDir = new File(picturesDir, "PowerBell"); File powerBellDir = new File(picturesDir, "PowerBell");
// 临时文件夹方案2 <图片保存失败> // 临时文件夹方案2 <图片保存失败>
// 获取Pictures文件夹路径Android 10及以上推荐使用MediaStore此处为传统方式 // 获取Pictures文件夹路径Android 10及以上推荐使用MediaStore此处为传统方式
//File powerBellDir = getExternalFilesDir("TempDir"); //File powerBellDir = getExternalFilesDir("TempDir");
@@ -52,14 +58,6 @@ public class App extends GlobalApplication {
} }
szTempDir = powerBellDir.getAbsolutePath(); szTempDir = powerBellDir.getAbsolutePath();
// 初始化 Toast 框架
ToastUtils.init(this);
// 设置 Toast 布局样式
//ToastUtils.setView(R.layout.toast_custom_view);
//ToastUtils.setStyle(new WhiteToastStyle());
//ToastUtils.setGravity(Gravity.BOTTOM, 0, 200);
// 设置数据配置存储工具 // 设置数据配置存储工具
_mAppConfigUtils = getAppConfigUtils(this); _mAppConfigUtils = getAppConfigUtils(this);
_mAppCacheUtils = getAppCacheUtils(this); _mAppCacheUtils = getAppCacheUtils(this);
@@ -91,7 +89,7 @@ public class App extends GlobalApplication {
super.onTerminate(); super.onTerminate();
ToastUtils.release(); ToastUtils.release();
} }
} }

View File

@@ -13,11 +13,14 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libaes.activitys.AboutActivity;
import cc.winboll.studio.libaes.models.APPInfo;
import cc.winboll.studio.libaes.utils.AESThemeUtil;
import cc.winboll.studio.libaes.utils.DevelopUtils;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.libaes.views.ADsBannerView; import cc.winboll.studio.libaes.views.ADsBannerView;
import cc.winboll.studio.libappbase.LogActivity; import cc.winboll.studio.libappbase.LogActivity;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.powerbell.activities.AboutActivity;
import cc.winboll.studio.powerbell.activities.BackgroundSettingsActivity; import cc.winboll.studio.powerbell.activities.BackgroundSettingsActivity;
import cc.winboll.studio.powerbell.activities.BatteryReportActivity; import cc.winboll.studio.powerbell.activities.BatteryReportActivity;
import cc.winboll.studio.powerbell.activities.ClearRecordActivity; import cc.winboll.studio.powerbell.activities.ClearRecordActivity;
@@ -112,7 +115,7 @@ public class MainActivity extends WinBoLLActivity {
tx.commit(); tx.commit();
} }
showFragment(mMainViewFragment); showFragment(mMainViewFragment);
PermissionUtils.getInstance().checkAndRequestStoragePermission(this); PermissionUtils.getInstance().checkAndRequestStoragePermission(this);
} }
@@ -228,35 +231,62 @@ public class MainActivity extends WinBoLLActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu; mMenu = menu;
getMenuInflater().inflate(R.menu.toolbar_main, mMenu); // 主题菜单
AESThemeUtil.inflateMenu(this, menu);
// 调试工具菜单
if (App.isDebugging()) { if (App.isDebugging()) {
getMenuInflater().inflate(R.menu.toolbar_unittest, mMenu); DevelopUtils.inflateMenu(this, menu);
} }
// 应用其他菜单
getMenuInflater().inflate(R.menu.toolbar_main, mMenu);
return true; return true;
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
int menuItemId = item.getItemId(); int menuItemId = item.getItemId();
if (menuItemId == R.id.action_settings) { if (AESThemeUtil.onAppThemeItemSelected(this, item)) {
recreate();
} if (DevelopUtils.onDevelopItemSelected(this, item)) {
LogUtils.d(TAG, String.format("onOptionsItemSelected item.getItemId() %d ", item.getItemId()));
} else if (menuItemId == R.id.action_settings) {
startActivity(new Intent(this, SettingsActivity.class)); startActivity(new Intent(this, SettingsActivity.class));
} else if (menuItemId == R.id.action_about) {
startActivity(new Intent(this, AboutActivity.class));
} else if (menuItemId == R.id.action_battery_report) { } else if (menuItemId == R.id.action_battery_report) {
startActivity(new Intent(this, BatteryReportActivity.class)); startActivity(new Intent(this, BatteryReportActivity.class));
} else if (menuItemId == R.id.action_clearrecord) { } else if (menuItemId == R.id.action_clearrecord) {
startActivity(new Intent(this, ClearRecordActivity.class)); startActivity(new Intent(this, ClearRecordActivity.class));
} else if (menuItemId == R.id.action_changepicture) { } else if (menuItemId == R.id.action_changepicture) {
startActivity(new Intent(this, BackgroundSettingsActivity.class)); startActivity(new Intent(this, BackgroundSettingsActivity.class));
} else if (menuItemId == R.id.action_log) {
LogActivity.startLogActivity(this);
} else if (menuItemId == R.id.action_unittestactivity) { } else if (menuItemId == R.id.action_unittestactivity) {
startActivity(new Intent(this, MainUnitTestActivity.class)); startActivity(new Intent(this, MainUnitTestActivity.class));
} } else if (menuItemId == R.id.action_about) {
Intent intent = new Intent(getApplicationContext(), AboutActivity.class);
APPInfo appInfo = genDefaultAPPInfo();
intent.putExtra(AboutActivity.EXTRA_APPINFO, appInfo);
WinBoLLActivityManager.getInstance().startWinBoLLActivity(getApplicationContext(), intent, AboutActivity.class);
} else {
return super.onOptionsItemSelected(item);
}
return true; return true;
} }
APPInfo genDefaultAPPInfo() {
String szBranchName = "powerbell";
APPInfo appInfo = new APPInfo();
appInfo.setAppName(getString(R.string.app_name));
appInfo.setAppIcon(R.drawable.ic_launcher);
appInfo.setAppDescription(getString(R.string.app_description));
appInfo.setAppGitName("APPBase");
appInfo.setAppGitOwner("Studio");
appInfo.setAppGitAPPBranch(szBranchName);
appInfo.setAppGitAPPSubProjectFolder(szBranchName);
appInfo.setAppHomePage("https://www.winboll.cc/apks/index.php?project=PowerBell");
appInfo.setAppAPKName("PowerBell");
appInfo.setAppAPKFolderName("PowerBell");
return appInfo;
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);

View File

@@ -1,65 +0,0 @@
package cc.winboll.studio.powerbell.activities;
/**
* @Author ZhanGSKen<zhangsken@qq.com>
* @Date 2025/03/25 01:16:32
* @Describe 应用介绍窗口
*/
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import cc.winboll.studio.libaes.models.APPInfo;
import cc.winboll.studio.libaes.views.AToolbar;
import cc.winboll.studio.libaes.views.AboutView;
import cc.winboll.studio.powerbell.R;
public class AboutActivity extends Activity {
Context mContext;
public static final String TAG = "AboutActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
mContext = this;
// 初始化工具栏
AToolbar mAToolbar = (AToolbar) findViewById(R.id.toolbar);
setActionBar(mAToolbar);
mAToolbar.setSubtitle(getString(R.string.text_about));
//mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
getActionBar().setDisplayHomeAsUpEnabled(true);
AboutView aboutView = CreateAboutView();
// 在 Activity 的 onCreate 或其他生命周期方法中调用
LinearLayout llRoot = findViewById(R.id.root_ll);
//layout.setOrientation(LinearLayout.VERTICAL);
// 创建布局参数(宽度和高度)
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
);
llRoot.addView(aboutView, params);
}
public AboutView CreateAboutView() {
String szBranchName = "powerbell";
APPInfo appInfo = new APPInfo();
appInfo.setAppName(getString(R.string.app_name));
appInfo.setAppIcon(R.drawable.ic_launcher);
appInfo.setAppDescription(getString(R.string.app_description));
appInfo.setAppGitName("APPBase");
appInfo.setAppGitOwner("Studio");
appInfo.setAppGitAPPBranch(szBranchName);
appInfo.setAppGitAPPSubProjectFolder(szBranchName);
appInfo.setAppHomePage("https://www.winboll.cc/apks/index.php?project=PowerBell");
appInfo.setAppAPKName("PowerBell");
appInfo.setAppAPKFolderName("PowerBell");
return new AboutView(mContext, appInfo);
}
}

View File

@@ -34,6 +34,7 @@ import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import androidx.appcompat.widget.Toolbar;
public class BackgroundSettingsActivity extends WinBoLLActivity implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener { public class BackgroundSettingsActivity extends WinBoLLActivity implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener {
@@ -45,7 +46,7 @@ public class BackgroundSettingsActivity extends WinBoLLActivity implements Backg
public static final int REQUEST_TAKE_PHOTO = 1; public static final int REQUEST_TAKE_PHOTO = 1;
public static final int REQUEST_CROP_IMAGE = 2; public static final int REQUEST_CROP_IMAGE = 2;
private AToolbar mAToolbar; private Toolbar mToolbar;
private BackgroundView mBackgroundView; private BackgroundView mBackgroundView;
private File mfTakePhoto; private File mfTakePhoto;
volatile boolean isCommitSettings = false; volatile boolean isCommitSettings = false;
@@ -97,11 +98,12 @@ public class BackgroundSettingsActivity extends WinBoLLActivity implements Backg
} }
private void initToolbar() { private void initToolbar() {
mAToolbar = (AToolbar) findViewById(R.id.toolbar); mToolbar = findViewById(R.id.toolbar);
setActionBar(mAToolbar); setSupportActionBar(mToolbar);
mAToolbar.setSubtitle(R.string.subtitle_activity_backgroundpicture); mToolbar.setSubtitle(getTag());
getActionBar().setDisplayHomeAsUpEnabled(true); mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
mAToolbar.setNavigationOnClickListener(new View.OnClickListener() { getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
LogUtils.d(TAG, "【导航栏】点击返回"); LogUtils.d(TAG, "【导航栏】点击返回");

View File

@@ -23,8 +23,11 @@ import android.view.ViewGroup;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -32,11 +35,11 @@ import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import cc.winboll.studio.libappbase.LogUtils;
public class BatteryReportActivity extends Activity { public class BatteryReportActivity extends WinBoLLActivity implements IWinBoLLActivity {
public static final String TAG = "BatteryReportActivity"; public static final String TAG = "BatteryReportActivity";
private Toolbar mToolbar;
private RecyclerView rvBatteryReport; private RecyclerView rvBatteryReport;
private BatteryReportAdapter adapter; private BatteryReportAdapter adapter;
private List<AppBatteryModel> dataList = new ArrayList<AppBatteryModel>(); private List<AppBatteryModel> dataList = new ArrayList<AppBatteryModel>();
@@ -50,10 +53,34 @@ public class BatteryReportActivity extends Activity {
private Map<String, String> packageToAppNameCache = new HashMap<String, String>(); private Map<String, String> packageToAppNameCache = new HashMap<String, String>();
private PackageManager mPackageManager; private PackageManager mPackageManager;
@Override
public Activity getActivity() {
return this;
}
@Override
public String getTag() {
return TAG;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_battery_report); setContentView(R.layout.activity_battery_report);
mToolbar = findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mToolbar.setSubtitle(getTag());
mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LogUtils.d(TAG, "【导航栏】点击返回");
finish();
}
});
mPackageManager = getPackageManager(); mPackageManager = getPackageManager();
// 权限检查Java7 传统条件判断) // 权限检查Java7 传统条件判断)

View File

@@ -7,7 +7,7 @@ import android.view.View;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import cc.winboll.studio.libaes.views.AOHPCTCSeekBar; import cc.winboll.studio.libaes.views.AOHPCTCSeekBar;
import cc.winboll.studio.libaes.views.AToolbar; import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.App;
@@ -17,16 +17,27 @@ import cc.winboll.studio.powerbell.receivers.ControlCenterServiceReceiver;
import cc.winboll.studio.powerbell.utils.AppCacheUtils; import cc.winboll.studio.powerbell.utils.AppCacheUtils;
import cc.winboll.studio.powerbell.utils.StringUtils; import cc.winboll.studio.powerbell.utils.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
public class ClearRecordActivity extends Activity { public class ClearRecordActivity extends WinBoLLActivity implements IWinBoLLActivity {
public static final String TAG = "ClearRecordActivity"; public static final String TAG = "ClearRecordActivity";
AToolbar mAToolbar; private Toolbar mToolbar;
TextView mtvRecordText; TextView mtvRecordText;
App mApplication; App mApplication;
boolean mIsShowRecordWithEnter = false; boolean mIsShowRecordWithEnter = false;
@Override
public Activity getActivity() {
return this;
}
@Override
public String getTag() {
return TAG;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@@ -34,21 +45,18 @@ public class ClearRecordActivity extends Activity {
mApplication = (App) getApplication(); mApplication = (App) getApplication();
// 初始化工具栏 // 初始化工具栏
mAToolbar = (AToolbar) findViewById(R.id.toolbar); mToolbar = findViewById(R.id.toolbar);
setActionBar(mAToolbar); setSupportActionBar(mToolbar);
//mAToolbar.setTitle(getTitle() + " - " + getString(R.string.subtitle_activity_clearrecord)); mToolbar.setSubtitle(getTag());
mAToolbar.setSubtitle(R.string.subtitle_activity_clearrecord); mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
//mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
//mAToolbar.setBackgroundColor(getColor(R.color.colorPrimary)); @Override
setActionBar(mAToolbar); public void onClick(View v) {
getActionBar().setDisplayHomeAsUpEnabled(true); LogUtils.d(TAG, "【导航栏】点击返回");
mAToolbar.setNavigationOnClickListener(new View.OnClickListener() { finish();
@Override }
public void onClick(View v) { });
finish();
}
});
// 设置滑动清理控件 // 设置滑动清理控件
// //

View File

@@ -3,6 +3,9 @@ package cc.winboll.studio.powerbell.activities;
import android.app.Activity; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.R;
import cc.winboll.studio.powerbell.utils.PermissionUtils; import cc.winboll.studio.powerbell.utils.PermissionUtils;
@@ -12,19 +15,44 @@ import cc.winboll.studio.powerbell.utils.PermissionUtils;
* @Date 2025/11/27 14:26 * @Date 2025/11/27 14:26
* @Describe 应用设置窗口 * @Describe 应用设置窗口
*/ */
public class SettingsActivity extends Activity { public class SettingsActivity extends WinBoLLActivity implements IWinBoLLActivity {
public static final String TAG = "SettingsActivity"; public static final String TAG = "SettingsActivity";
private Toolbar mToolbar;
@Override
public Activity getActivity() {
return this;
}
@Override
public String getTag() {
return TAG;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings); setContentView(R.layout.activity_settings);
mToolbar = findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mToolbar.setSubtitle(getTag());
mToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LogUtils.d(TAG, "【导航栏】点击返回");
finish();
}
});
} }
public void onCheckPermission(View view) { public void onCheckPermission(View view) {
//ToastUtils.show("onCheckPermission"); //ToastUtils.show("onCheckPermission");
if(PermissionUtils.getInstance().checkAndRequestStoragePermission(this)) { if (PermissionUtils.getInstance().checkAndRequestStoragePermission(this)) {
ToastUtils.show("【权限检查】存储权限已全部获取"); ToastUtils.show("【权限检查】存储权限已全部获取");
} }
} }

View File

@@ -21,6 +21,9 @@ import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity; import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libaes.models.AESThemeBean;
import cc.winboll.studio.libaes.utils.AESThemeUtil;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.powerbell.BuildConfig; import cc.winboll.studio.powerbell.BuildConfig;
import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.R;
@@ -28,15 +31,24 @@ import cc.winboll.studio.powerbell.R;
public abstract class WinBoLLActivity extends AppCompatActivity implements IWinBoLLActivity { public abstract class WinBoLLActivity extends AppCompatActivity implements IWinBoLLActivity {
public static final String TAG = "WinBoLLActivity"; public static final String TAG = "WinBoLLActivity";
protected volatile AESThemeBean.ThemeType mThemeType;
protected TextView mTagView; protected TextView mTagView;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
mThemeType = getThemeType();
setThemeStyle();
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
changeFullScreen(this); }
AESThemeBean.ThemeType getThemeType() {
return AESThemeBean.getThemeStyleType(AESThemeUtil.getThemeTypeID(getApplicationContext()));
} }
void setThemeStyle() {
setTheme(AESThemeUtil.getThemeTypeID(getApplicationContext()));
}
@Override @Override
protected void onStart() { protected void onStart() {
@@ -79,13 +91,13 @@ public abstract class WinBoLLActivity extends AppCompatActivity implements IWinB
@Override @Override
protected void onPostCreate(Bundle savedInstanceState) { protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState); super.onPostCreate(savedInstanceState);
//GlobalApplication.getWinBoLLActivityManager().add(this); WinBoLLActivityManager.getInstance().add(this);
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
//GlobalApplication.getWinBoLLActivityManager().registeRemove(this); WinBoLLActivityManager.getInstance().registeRemove(this);
} }
@Override @Override

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<cc.winboll.studio.libaes.views.AToolbar
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:id="@+id/toolbar"
android:gravity="center_vertical"
style="@style/DefaultAToolbar"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.0"
android:id="@+id/root_ll"/>
</LinearLayout>

View File

@@ -6,10 +6,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<cc.winboll.studio.libaes.views.AToolbar <cc.winboll.studio.libaes.views.ASupportToolbar
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height" android:layout_height="@dimen/toolbar_height"
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:gravity="center_vertical"
style="@style/DefaultAToolbar"/> style="@style/DefaultAToolbar"/>
<LinearLayout <LinearLayout

View File

@@ -5,6 +5,13 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:background="@android:color/white"> android:background="@android:color/white">
<cc.winboll.studio.libaes.views.ASupportToolbar
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:id="@+id/toolbar"
android:gravity="center_vertical"
style="@style/DefaultAToolbar"/>
<!-- 搜索框:提示文本改为“搜索应用名称或包名” --> <!-- 搜索框:提示文本改为“搜索应用名称或包名” -->
<EditText <EditText

View File

@@ -6,10 +6,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<cc.winboll.studio.libaes.views.AToolbar <cc.winboll.studio.libaes.views.ASupportToolbar
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height" android:layout_height="@dimen/toolbar_height"
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:gravity="center_vertical"
style="@style/DefaultAToolbar"/> style="@style/DefaultAToolbar"/>
<LinearLayout <LinearLayout

View File

@@ -6,10 +6,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<cc.winboll.studio.libaes.views.AToolbar <cc.winboll.studio.libaes.views.ASupportToolbar
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height" android:layout_height="@dimen/toolbar_height"
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:gravity="center_vertical"
style="@style/DefaultAToolbar"/> style="@style/DefaultAToolbar"/>
<LinearLayout <LinearLayout