调整应用主题

This commit is contained in:
2025-12-12 20:08:21 +08:00
parent 01e4e8031b
commit c1d2158578
7 changed files with 75 additions and 24 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Fri Dec 12 11:02:22 GMT 2025
#Fri Dec 12 12:07:02 GMT 2025
stageCount=1
libraryProject=
baseVersion=15.12
publishVersion=15.12.0
buildCount=35
buildCount=49
baseBetaVersion=15.12.1

View File

@@ -7,33 +7,31 @@ import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
import cc.winboll.studio.contacts.activities.SettingsActivity;
import cc.winboll.studio.contacts.activities.WinBollActivity;
import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.fragments.CallLogFragment;
import cc.winboll.studio.contacts.fragments.ContactsFragment;
@@ -47,6 +45,7 @@ import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libaes.views.ADsBannerView;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
import com.google.android.material.tabs.TabLayout;
import java.util.ArrayList;
import java.util.List;
@@ -55,7 +54,7 @@ import java.util.List;
* @Date 2025/08/30 14:32
* @Describe Contacts 主窗口(完全适配 API 30 + Java 7 语法)
*/
public final class MainActivity extends AppCompatActivity implements IWinBoLLActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
public final class MainActivity extends WinBollActivity implements IWinBoLLActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
// ====================== 常量定义区Java 7 硬编码 API 版本,避免高版本依赖) ======================
public static final String TAG = "MainActivity";
@@ -287,6 +286,15 @@ public final class MainActivity extends AppCompatActivity implements IWinBoLLAct
mToolbar = (Toolbar) findViewById(R.id.activitymainToolbar1);
setSupportActionBar(mToolbar);
getSupportActionBar().setSubtitle(TAG);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// 显示状态栏
getWindow().getInsetsController().show(WindowInsets.Type.statusBars());
// 设置滑动时状态栏暂显的正常行为
getWindow().getInsetsController().setSystemBarsBehavior(
WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
);
}
// Tab与ViewPager初始化
tabLayout = (TabLayout) findViewById(R.id.tabLayout);

View File

@@ -21,7 +21,7 @@ import cc.winboll.studio.libappbase.LogUtils;
* @Date 2025/03/31 15:15:54
* @Describe 应用介绍窗口
*/
public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity {
public class AboutActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ======================
public static final String TAG = "AboutActivity";

View File

@@ -42,7 +42,7 @@ import java.util.List;
* @Date 2025/02/21 05:37:42
* @Describe Contacts 主窗口
*/
public class SettingsActivity extends AppCompatActivity implements IWinBoLLActivity {
public class SettingsActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ======================
public static final String TAG = "SettingsActivity";

View File

@@ -1,12 +1,13 @@
package cc.winboll.studio.contacts.activities;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import cc.winboll.studio.contacts.R;
import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.utils.IntUtils;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
@@ -15,7 +16,7 @@ import cc.winboll.studio.libappbase.LogView;
* @Date 2025/03/02 16:07:04
* @Describe 规则单元测试页面
*/
public class UnitTestActivity extends Activity {
public class UnitTestActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ======================
public static final String TAG = "UnitTestActivity";
@@ -24,6 +25,17 @@ public class UnitTestActivity extends Activity {
private LogView logView;
private EditText etPhone;
// ====================== 接口实现区 ======================
@Override
public AppCompatActivity getActivity() {
return this;
}
@Override
public String getTag() {
return TAG;
}
// ====================== 生命周期函数区 ======================
@Override
protected void onCreate(Bundle savedInstanceState) {

View File

@@ -36,12 +36,12 @@ public class WinBollActivity extends AppCompatActivity implements IWinBoLLActivi
// ====================== 生命周期函数区 ======================
@Override
protected void onCreate(Bundle savedInstanceState) {
LogUtils.d(TAG, "onCreate: 基类页面开始创建");
//LogUtils.d(TAG, "onCreate: 基类页面开始创建");
// 优先设置主题,再执行父类初始化
mThemeType = getThemeType();
setThemeStyle();
// mThemeType = getThemeType();
// setThemeStyle();
super.onCreate(savedInstanceState);
LogUtils.d(TAG, "onCreate: 基类主题设置完成,当前主题类型=" + mThemeType);
//LogUtils.d(TAG, "onCreate: 基类主题设置完成,当前主题类型=" + mThemeType);
}
// ====================== 主题相关函数区 ======================
@@ -73,11 +73,11 @@ public class WinBollActivity extends AppCompatActivity implements IWinBoLLActivi
public boolean onOptionsItemSelected(MenuItem item) {
LogUtils.d(TAG, "onOptionsItemSelected: 菜单选项点击itemId=" + item.getItemId());
// 处理导航栏返回按钮点击事件
if (item.getItemId() == android.R.id.home) {
LogUtils.d(TAG, "onOptionsItemSelected: 点击导航返回按钮,关闭当前页面");
finish();
return true;
}
// if (item.getItemId() == android.R.id.home) {
// LogUtils.d(TAG, "onOptionsItemSelected: 点击导航返回按钮,关闭当前页面");
// finish();
// return true;
// }
return super.onOptionsItemSelected(item);
}
}

View File

@@ -1,17 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="AESTheme">
<!-- 方案1无 ActionBar 主题(推荐,适合自定义标题栏) -->
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="GlobalCrashActivityTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorTittle">@color/colorAccent</item>
<item name="colorTittleBackgound">@color/colorPrimary</item>
<item name="colorText">@color/colorAccent</item>
<item name="colorTextBackgound">@color/colorPrimaryDark</item>
</style>
<!-- 方案2带 ActionBar 主题(如需系统默认标题栏,启用此方案) -->
<!--
<style name="MyAppTheme" parent="Theme.MaterialComponents.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:textSizeHeadline">18sp</item>
<item name="android:textSizeBody">16sp</item>
<item name="android:textSizeSubtitle">14sp</item>
<item name="android:textSizeCaption">12sp</item>
</style>
<style name="GlobalCrashActivityTheme" parent="AESTheme">
<style name="GlobalCrashActivityTheme" parent="Theme.MaterialComponents.Light">
<item name="colorTittle">@color/colorAccent</item>
<item name="colorTittleBackgound">@color/colorPrimary</item>
<item name="colorText">@color/colorAccent</item>
<item name="colorTextBackgound">@color/colorPrimaryDark</item>
</style>
<item name="android:textSizeHeadline">20sp</item>
<item name="android:textSizeBody">14sp</item>
<item name="android:textSizeButton">16sp</item>
</style>
-->
</resources>