From 2b5447e65f13f90706f18bae25bbee767a6ea460 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Wed, 10 Dec 2025 16:52:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E5=90=88=E5=BA=94=E7=94=A8=E7=9B=B8?= =?UTF-8?q?=E6=A1=86=E6=A1=86=E6=9E=B6=E8=B0=83=E6=95=B4=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E5=BF=AB=E5=90=AF=E5=8A=A8=E9=A1=B5=E5=8A=A0=E8=BD=BD=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.properties | 4 +- .../studio/powerbell/MainActivity.java | 361 +++++++++++++++++- .../powerbell/fragments/MainViewFragment.java | 329 +--------------- .../receivers/GlobalApplicationReceiver.java | 5 +- .../powerbell/utils/AppConfigUtils.java | 6 +- .../src/main/res/layout/activity_main.xml | 218 ++++++++++- .../src/main/res/layout/fragment_mainview.xml | 218 ----------- 7 files changed, 571 insertions(+), 570 deletions(-) delete mode 100644 powerbell/src/main/res/layout/fragment_mainview.xml diff --git a/powerbell/build.properties b/powerbell/build.properties index 9eb4b9c..4362e5b 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed Dec 10 16:20:34 HKT 2025 +#Wed Dec 10 08:50:13 GMT 2025 stageCount=4 libraryProject= baseVersion=15.12 publishVersion=15.12.3 -buildCount=0 +buildCount=3 baseBetaVersion=15.12.4 diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index c1fee1b..10a1f66 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -5,15 +5,25 @@ import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; import android.database.Cursor; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.provider.MediaStore; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; +import android.widget.SeekBar; +import android.widget.Switch; +import android.widget.TextView; 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; @@ -28,9 +38,15 @@ import cc.winboll.studio.powerbell.activities.SettingsActivity; import cc.winboll.studio.powerbell.activities.WinBoLLActivity; import cc.winboll.studio.powerbell.fragments.MainViewFragment; import cc.winboll.studio.powerbell.model.BackgroundBean; +import cc.winboll.studio.powerbell.services.ControlCenterService; import cc.winboll.studio.powerbell.unittest.MainUnitTestActivity; +import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BackgroundSourceUtils; import cc.winboll.studio.powerbell.utils.PermissionUtils; +import cc.winboll.studio.powerbell.utils.ServiceUtils; +import cc.winboll.studio.powerbell.views.BackgroundView; +import cc.winboll.studio.powerbell.views.BatteryDrawable; +import cc.winboll.studio.powerbell.views.VerticalSeekBar; /** * 主活动类(修复小米广告SDK空Context崩溃问题) @@ -55,6 +71,47 @@ public class MainActivity extends WinBoLLActivity { private Toolbar mToolbar; // 顶部工具栏 private ADsBannerView mADsBannerView; // 广告Banner视图 + public static final int MSG_RELOAD_APPCONFIG = 0; + public static final int MSG_CURRENTVALUEBATTERY = 1; + + static MainViewFragment _mMainViewFragment; + AppConfigUtils mAppConfigUtils; + Drawable mDrawableFrame; + LinearLayout mllLeftSeekBar; + LinearLayout mllRightSeekBar; + CheckBox mcbIsEnableChargeReminder; + CheckBox mcbIsEnableUsegeReminder; + Switch mswIsEnableService; + TextView mtvTips; + + private BackgroundSourceUtils mBgSourceUtils; + + // 背景布局 + //LinearLayout mLinearLayoutloadBackground; + + // 现在电量图示 + BatteryDrawable mCurrentValueBatteryDrawable; + // 现在充电提醒电量图示 + BatteryDrawable mChargeReminderValueBatteryDrawable; + // 现在耗电提醒电量图示 + BatteryDrawable mUsegeReminderValueBatteryDrawable; + + ImageView mCurrentValueBatteryImageView; + ImageView mChargeReminderValueBatteryImageView; + ImageView mUsegeReminderValueBatteryImageView; + + VerticalSeekBar mChargeReminderSeekBar; + ChargeReminderSeekBarChangeListener mChargeReminderSeekBarChangeListener; + TextView mtvChargeReminderValue; + + + VerticalSeekBar mUsegeReminderSeekBar; + UsegeReminderSeekBarChangeListener mUsegeReminderSeekBarChangeListener; + TextView mtvUsegeReminderValue; + CheckBox mcbUsegeReminderValue; + TextView mtvCurrentValue; + BackgroundView mBackgroundView; + // ======================== 重写父类抽象方法(优先排列,明确实现)======================== @Override @@ -76,7 +133,7 @@ public class MainActivity extends WinBoLLActivity { // 初始化视图与实例 initView(); initInstance(); - initFragment(); +// initFragment(); // 权限申请 PermissionUtils.getInstance().checkAndRequestStoragePermission(this); @@ -211,11 +268,11 @@ public class MainActivity extends WinBoLLActivity { /** * 刷新背景(全局静态调用,带生命周期校验) */ - public static void reloadBackground() { - if (_mMainActivity != null && !_mMainActivity.isFinishing() && !_mMainActivity.isDestroyed()) { - _mMainActivity.mMainViewFragment.reloadBackground(); - } - } +// public static void reloadBackground() { +// if (_mMainActivity != null && !_mMainActivity.isFinishing() && !_mMainActivity.isDestroyed()) { +// _mMainActivity.mMainViewFragment.reloadBackground(); +// } +// } /** * 设置主页面背景颜色(从BackgroundBean获取颜色值) @@ -279,8 +336,224 @@ public class MainActivity extends WinBoLLActivity { * 初始化视图控件(findViewById) */ private void initView() { + mAppConfigUtils = App.getAppConfigUtils(getActivity()); + mBgSourceUtils = BackgroundSourceUtils.getInstance(getActivity()); + mADsBannerView = findViewById(R.id.adsbanner); mToolbar = findViewById(R.id.toolbar); + + // 获取指定ID的View实例 + mBackgroundView = findViewById(R.id.fragmentmainviewBackgroundView1); + + loadBackground(); + /*final View mainImageView = mView.findViewById(R.id.fragmentmainviewImageView1); + + // 注册OnGlobalLayoutListener + mainImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + // 获取宽度和高度 + int width = mainImageView.getMeasuredWidth(); + int height = mainImageView.getMeasuredHeight(); + + BackgroundPictureUtils utils = BackgroundPictureUtils.getInstance(getActivity()); + BackgroundPictureBean bean = utils.loadBackgroundPictureBean(); + bean.setBackgroundWidth(width); + bean.setBackgroundHeight(height); + utils.saveData(); + // 移除监听器以避免内存泄漏 + mainImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + });*/ + + mDrawableFrame = getActivity().getDrawable(R.drawable.bg_frame); + mllLeftSeekBar = (LinearLayout) findViewById(R.id.fragmentmainviewLinearLayout1); + mllRightSeekBar = (LinearLayout) findViewById(R.id.fragmentmainviewLinearLayout2); + + // 初始化充电电量提醒设置控件 + mtvChargeReminderValue = (TextView) findViewById(R.id.fragmentandroidviewTextView2); + mChargeReminderSeekBar = (VerticalSeekBar) findViewById(R.id.fragmentandroidviewVerticalSeekBar1); + mcbIsEnableChargeReminder = findViewById(R.id.fragmentmainviewCheckBox1); + + // 初始化耗电电量提醒设置控件 + mtvUsegeReminderValue = (TextView) findViewById(R.id.fragmentandroidviewTextView3); + mUsegeReminderSeekBar = (VerticalSeekBar) findViewById(R.id.fragmentandroidviewVerticalSeekBar2); + mcbIsEnableUsegeReminder = findViewById(R.id.fragmentmainviewCheckBox2); + + // 初始化现在电量显示控件 + mtvCurrentValue = (TextView) findViewById(R.id.fragmentandroidviewTextView4); + + // 初始化服务总开关 + mswIsEnableService = (Switch) findViewById(R.id.fragmentandroidviewSwitch1); + mtvTips = findViewById(R.id.fragmentandroidviewTextView1); + + // 设置视图显示数据 + setViewData(); + // 设置视图控件响应 + setViewListener(); + + // 注册一个广播接收 + //mMainActivityReceiver = new MainActivityReceiver(this); + //mMainActivityReceiver.registerAction(); + + // 启动的时候检查一下服务 + if (mAppConfigUtils.getIsEnableService() + && ServiceUtils.isServiceAlive(getActivity(), ControlCenterService.class.getName()) == false) { + // 如果配置了服务启动,服务没有启动 + // 就启动服务 + Intent intent = new Intent(getActivity(), ControlCenterService.class); + getActivity().startForegroundService(intent); + } + } + + void loadBackground() { + BackgroundBean bean = mBgSourceUtils.getCurrentBackgroundBean(); + mBackgroundView.loadBackgroundBean(bean); + } + + void setViewData() { + int nChargeReminderValue = mAppConfigUtils.getChargeReminderValue(); + int nUsegeReminderValue = mAppConfigUtils.getUsegeReminderValue(); + int nCurrentValue = mAppConfigUtils.getCurrentValue(); + + mllLeftSeekBar.setBackground(mDrawableFrame); + mllRightSeekBar.setBackground(mDrawableFrame); + + // 初始化电量图 + mCurrentValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorCurrent)); + mCurrentValueBatteryDrawable.setValue(mAppConfigUtils.getCurrentValue()); + mCurrentValueBatteryImageView = findViewById(R.id.fragmentandroidviewImageView1); + mCurrentValueBatteryImageView.setImageDrawable(mCurrentValueBatteryDrawable); + + // 初始化充电电量提醒图 + mChargeReminderValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorCharge)); + mChargeReminderValueBatteryDrawable.setValue(nChargeReminderValue); + mChargeReminderValueBatteryImageView = findViewById(R.id.fragmentandroidviewImageView3); + mChargeReminderValueBatteryImageView.setImageDrawable(mChargeReminderValueBatteryDrawable); + + // 初始化耗电电量提醒图 + mUsegeReminderValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorUsege)); + mUsegeReminderValueBatteryDrawable.setValue(nUsegeReminderValue); + mUsegeReminderValueBatteryImageView = findViewById(R.id.fragmentandroidviewImageView2); + mUsegeReminderValueBatteryImageView.setImageDrawable(mUsegeReminderValueBatteryDrawable); + + // 初始化充电电量提醒设置控件 + mtvChargeReminderValue.setTextColor(getActivity().getColor(R.color.colorCharge)); + //LogUtils.d(TAG, "Color.YELLOW is " + Integer.toString(mApplication.getColor(R.color.colorCharge))); + mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); + mChargeReminderSeekBar.setProgress(nChargeReminderValue); + mcbIsEnableChargeReminder.setChecked(mAppConfigUtils.getIsEnableChargeReminder()); + + // 初始化耗电电量提醒设置控件 + mtvUsegeReminderValue.setTextColor(getActivity().getColor(R.color.colorUsege)); + mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); + mUsegeReminderSeekBar.setProgress(nUsegeReminderValue); + mcbIsEnableUsegeReminder.setChecked(mAppConfigUtils.getIsEnableUsegeReminder()); + + // 初始化现在电量显示控件 + mtvCurrentValue.setTextColor(getActivity().getColor(R.color.colorCurrent)); + mtvCurrentValue.setText(Integer.toString(nCurrentValue) + "%"); + + // 初始化服务总开关 + mswIsEnableService.setChecked(mAppConfigUtils.getIsEnableService()); + if (mAppConfigUtils.getIsEnableService()) { + //LogUtils.d(TAG, "mApplication.getIsEnableService() " + Boolean.toString(mAppConfigUtils.getIsEnableService())); + ControlCenterService.startControlCenterService(getActivity()); + } else { + //LogUtils.d(TAG, "mApplication.getIsEnableService() " + Boolean.toString(mAppConfigUtils.getIsEnableService())); + ControlCenterService.stopControlCenterService(getActivity()); + } + mswIsEnableService.setText(getString(R.string.txt_aboveswitch)); + mtvTips.setText(getString(R.string.txt_aboveswitchtips)); + + } + + void setViewListener() { + // 初始化充电电量提醒设置控件 + mChargeReminderSeekBarChangeListener = new ChargeReminderSeekBarChangeListener(); + mChargeReminderSeekBar.setOnSeekBarChangeListener(mChargeReminderSeekBarChangeListener); + mcbIsEnableChargeReminder.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d(TAG, "setIsEnableChargeReminder"); + mAppConfigUtils.setIsEnableChargeReminder(mcbIsEnableChargeReminder.isChecked()); + //ControlCenterService.updateIsEnableChargeReminder(mcbIsEnableChargeReminder.isChecked()); + } + }); + + + // 初始化耗电电量提醒设置控件 + mUsegeReminderSeekBarChangeListener = new UsegeReminderSeekBarChangeListener(); + mUsegeReminderSeekBar.setOnSeekBarChangeListener(mUsegeReminderSeekBarChangeListener); + mcbIsEnableUsegeReminder.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d(TAG, "setIsEnableUsegeReminder"); + mAppConfigUtils.setIsEnableUsegeReminder(mcbIsEnableUsegeReminder.isChecked()); + //ControlCenterService.updateIsEnableUsegeReminder(mcbIsEnableUsegeReminder.isChecked()); + } + }); + + // 初始化服务总开关 + mswIsEnableService.setOnClickListener(new CompoundButton.OnClickListener() { + + @Override + public void onClick(View view) { + mAppConfigUtils.setIsEnableService(getActivity(), mswIsEnableService.isChecked()); + } + }); + } + + void setCurrentValueBattery(int value) { + //LogUtils.d(TAG, "setCurrentValueBattery"); + mtvCurrentValue.setText(Integer.toString(value) + "%"); + mCurrentValueBatteryDrawable.setValue(value); + mCurrentValueBatteryDrawable.invalidateSelf(); + } + + + + public void reloadBackground() { + BackgroundSourceUtils utils = BackgroundSourceUtils.getInstance(getActivity()); + utils.loadSettings(); + BackgroundBean bean = utils.getCurrentBackgroundBean(); + mBackgroundView.loadBackgroundBean(bean); + } + + static Handler _mHandler = new Handler(){ + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_RELOAD_APPCONFIG : { + if (_mMainActivity != null) { + _mMainActivity.setViewData(); + } + break; + } + case MSG_CURRENTVALUEBATTERY : { + if (_mMainActivity != null) { + _mMainActivity.setCurrentValueBattery(msg.arg1); + } + break; + } + } + super.handleMessage(msg); + } + + }; + + public static void relaodAppConfigs() { + if (_mHandler != null) { + _mHandler.sendMessage(_mHandler.obtainMessage(MSG_RELOAD_APPCONFIG)); + } + } + + public static void sendMsgCurrentValueBattery(int value) { + if (_mHandler != null) { + Message msg = _mHandler.obtainMessage(MSG_CURRENTVALUEBATTERY); + msg.arg1 = value; + _mHandler.sendMessage(msg); + } } /** @@ -297,13 +570,73 @@ public class MainActivity extends WinBoLLActivity { /** * 初始化主Fragment(添加并显示) */ - private void initFragment() { - if (mMainViewFragment == null) { - FragmentTransaction tx = getFragmentManager().beginTransaction(); - mMainViewFragment = new MainViewFragment(); - tx.add(R.id.activitymainFrameLayout1, mMainViewFragment, MainViewFragment.TAG); - tx.commit(); +// private void initFragment() { +// if (mMainViewFragment == null) { +// FragmentTransaction tx = getFragmentManager().beginTransaction(); +// mMainViewFragment = new MainViewFragment(); +// tx.add(R.id.activitymainFrameLayout1, mMainViewFragment, MainViewFragment.TAG); +// tx.commit(); +// } +// showFragment(mMainViewFragment); +// } + + class ChargeReminderSeekBarChangeListener implements SeekBar.OnSeekBarChangeListener { + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + //LogUtils.d(TAG, "call onProgressChanged"); + int nChargeReminderValue = progress; + mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); + mChargeReminderValueBatteryDrawable.setValue(nChargeReminderValue); + mChargeReminderValueBatteryDrawable.invalidateSelf(); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + //LogUtils.d(TAG, "call onStartTrackingTouch"); + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + //LogUtils.d(TAG, "call onStopTrackingTouch"); + //取得当前进度条的刻度 + int nChargeReminderValue = ((VerticalSeekBar)seekBar)._mnProgress; + + mAppConfigUtils.setChargeReminderValue(nChargeReminderValue); + mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); + //ControlCenterService.updateChargeReminderValue(nChargeReminderValue); } - showFragment(mMainViewFragment); } + + class UsegeReminderSeekBarChangeListener implements SeekBar.OnSeekBarChangeListener { + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + //LogUtils.d(TAG, "call onProgressChanged"); + int nUsegeReminderValue = progress; + mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); + mUsegeReminderValueBatteryDrawable.setValue(nUsegeReminderValue); + mUsegeReminderValueBatteryDrawable.invalidateSelf(); + + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + //LogUtils.d(TAG, "call onStartTrackingTouch"); + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + //LogUtils.d(TAG, "call onStopTrackingTouch"); + //取得当前进度条的刻度 + int nUsegeReminderValue = ((VerticalSeekBar)seekBar)._mnProgress; + LogUtils.d(TAG, "nUsegeReminderValue is " + Integer.toString(nUsegeReminderValue)); + //LogUtils.d(TAG, "mPowerReminder is " + mApplication); + mAppConfigUtils.setUsegeReminderValue(nUsegeReminderValue); + //LogUtils.d(TAG, "opopopopopopopop"); + mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); + //ControlCenterService.updateUsegeReminderValue(nUsegeReminderValue); + } + } + } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java index 8282f24..e2ef65e 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java @@ -33,333 +33,8 @@ public class MainViewFragment extends Fragment { public static final String TAG = "MainViewFragment"; - public static final int MSG_RELOAD_APPCONFIG = 0; - public static final int MSG_CURRENTVALUEBATTERY = 1; - - static MainViewFragment _mMainViewFragment; - AppConfigUtils mAppConfigUtils; - View mView; - Drawable mDrawableFrame; - LinearLayout mllLeftSeekBar; - LinearLayout mllRightSeekBar; - CheckBox mcbIsEnableChargeReminder; - CheckBox mcbIsEnableUsegeReminder; - Switch mswIsEnableService; - TextView mtvTips; - - private BackgroundSourceUtils mBgSourceUtils; - - // 背景布局 - //LinearLayout mLinearLayoutloadBackground; - - // 现在电量图示 - BatteryDrawable mCurrentValueBatteryDrawable; - // 现在充电提醒电量图示 - BatteryDrawable mChargeReminderValueBatteryDrawable; - // 现在耗电提醒电量图示 - BatteryDrawable mUsegeReminderValueBatteryDrawable; - - ImageView mCurrentValueBatteryImageView; - ImageView mChargeReminderValueBatteryImageView; - ImageView mUsegeReminderValueBatteryImageView; - - VerticalSeekBar mChargeReminderSeekBar; - ChargeReminderSeekBarChangeListener mChargeReminderSeekBarChangeListener; - TextView mtvChargeReminderValue; - - - VerticalSeekBar mUsegeReminderSeekBar; - UsegeReminderSeekBarChangeListener mUsegeReminderSeekBarChangeListener; - TextView mtvUsegeReminderValue; - CheckBox mcbUsegeReminderValue; - TextView mtvCurrentValue; - BackgroundView mBackgroundView; - - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - mView = inflater.inflate(R.layout.fragment_mainview, container, false); - _mMainViewFragment = MainViewFragment.this; - mAppConfigUtils = App.getAppConfigUtils(getActivity()); - mBgSourceUtils = BackgroundSourceUtils.getInstance(getActivity()); - // 获取指定ID的View实例 - mBackgroundView = mView.findViewById(R.id.fragmentmainviewBackgroundView1); - - loadBackground(); - /*final View mainImageView = mView.findViewById(R.id.fragmentmainviewImageView1); - - // 注册OnGlobalLayoutListener - mainImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - // 获取宽度和高度 - int width = mainImageView.getMeasuredWidth(); - int height = mainImageView.getMeasuredHeight(); - - BackgroundPictureUtils utils = BackgroundPictureUtils.getInstance(getActivity()); - BackgroundPictureBean bean = utils.loadBackgroundPictureBean(); - bean.setBackgroundWidth(width); - bean.setBackgroundHeight(height); - utils.saveData(); - // 移除监听器以避免内存泄漏 - mainImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } - });*/ - - mDrawableFrame = getActivity().getDrawable(R.drawable.bg_frame); - mllLeftSeekBar = (LinearLayout) mView.findViewById(R.id.fragmentmainviewLinearLayout1); - mllRightSeekBar = (LinearLayout) mView.findViewById(R.id.fragmentmainviewLinearLayout2); - - // 初始化充电电量提醒设置控件 - mtvChargeReminderValue = (TextView) mView.findViewById(R.id.fragmentandroidviewTextView2); - mChargeReminderSeekBar = (VerticalSeekBar) mView.findViewById(R.id.fragmentandroidviewVerticalSeekBar1); - mcbIsEnableChargeReminder = mView.findViewById(R.id.fragmentmainviewCheckBox1); - - // 初始化耗电电量提醒设置控件 - mtvUsegeReminderValue = (TextView) mView.findViewById(R.id.fragmentandroidviewTextView3); - mUsegeReminderSeekBar = (VerticalSeekBar) mView.findViewById(R.id.fragmentandroidviewVerticalSeekBar2); - mcbIsEnableUsegeReminder = mView.findViewById(R.id.fragmentmainviewCheckBox2); - - // 初始化现在电量显示控件 - mtvCurrentValue = (TextView) mView.findViewById(R.id.fragmentandroidviewTextView4); - - // 初始化服务总开关 - mswIsEnableService = (Switch) mView.findViewById(R.id.fragmentandroidviewSwitch1); - mtvTips = mView.findViewById(R.id.fragmentandroidviewTextView1); - - // 设置视图显示数据 - setViewData(); - // 设置视图控件响应 - setViewListener(); - - // 注册一个广播接收 - //mMainActivityReceiver = new MainActivityReceiver(this); - //mMainActivityReceiver.registerAction(); - - // 启动的时候检查一下服务 - if (mAppConfigUtils.getIsEnableService() - && ServiceUtils.isServiceAlive(getActivity(), ControlCenterService.class.getName()) == false) { - // 如果配置了服务启动,服务没有启动 - // 就启动服务 - Intent intent = new Intent(getActivity(), ControlCenterService.class); - getActivity().startForegroundService(intent); - } - - return mView; - } - - void loadBackground() { - BackgroundBean bean = mBgSourceUtils.getCurrentBackgroundBean(); - mBackgroundView.loadBackgroundBean(bean); - } - - @Override - public void onResume() { - super.onResume(); - loadBackground(); - } - - - - void setViewData() { - int nChargeReminderValue = mAppConfigUtils.getChargeReminderValue(); - int nUsegeReminderValue = mAppConfigUtils.getUsegeReminderValue(); - int nCurrentValue = mAppConfigUtils.getCurrentValue(); - - mllLeftSeekBar.setBackground(mDrawableFrame); - mllRightSeekBar.setBackground(mDrawableFrame); - - // 初始化电量图 - mCurrentValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorCurrent)); - mCurrentValueBatteryDrawable.setValue(mAppConfigUtils.getCurrentValue()); - mCurrentValueBatteryImageView = mView.findViewById(R.id.fragmentandroidviewImageView1); - mCurrentValueBatteryImageView.setImageDrawable(mCurrentValueBatteryDrawable); - - // 初始化充电电量提醒图 - mChargeReminderValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorCharge)); - mChargeReminderValueBatteryDrawable.setValue(nChargeReminderValue); - mChargeReminderValueBatteryImageView = mView.findViewById(R.id.fragmentandroidviewImageView3); - mChargeReminderValueBatteryImageView.setImageDrawable(mChargeReminderValueBatteryDrawable); - - // 初始化耗电电量提醒图 - mUsegeReminderValueBatteryDrawable = new BatteryDrawable(getActivity().getColor(R.color.colorUsege)); - mUsegeReminderValueBatteryDrawable.setValue(nUsegeReminderValue); - mUsegeReminderValueBatteryImageView = mView.findViewById(R.id.fragmentandroidviewImageView2); - mUsegeReminderValueBatteryImageView.setImageDrawable(mUsegeReminderValueBatteryDrawable); - - // 初始化充电电量提醒设置控件 - mtvChargeReminderValue.setTextColor(getActivity().getColor(R.color.colorCharge)); - //LogUtils.d(TAG, "Color.YELLOW is " + Integer.toString(mApplication.getColor(R.color.colorCharge))); - mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); - mChargeReminderSeekBar.setProgress(nChargeReminderValue); - mcbIsEnableChargeReminder.setChecked(mAppConfigUtils.getIsEnableChargeReminder()); - - // 初始化耗电电量提醒设置控件 - mtvUsegeReminderValue.setTextColor(getActivity().getColor(R.color.colorUsege)); - mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); - mUsegeReminderSeekBar.setProgress(nUsegeReminderValue); - mcbIsEnableUsegeReminder.setChecked(mAppConfigUtils.getIsEnableUsegeReminder()); - - // 初始化现在电量显示控件 - mtvCurrentValue.setTextColor(getActivity().getColor(R.color.colorCurrent)); - mtvCurrentValue.setText(Integer.toString(nCurrentValue) + "%"); - - // 初始化服务总开关 - mswIsEnableService.setChecked(mAppConfigUtils.getIsEnableService()); - if (mAppConfigUtils.getIsEnableService()) { - //LogUtils.d(TAG, "mApplication.getIsEnableService() " + Boolean.toString(mAppConfigUtils.getIsEnableService())); - ControlCenterService.startControlCenterService(getActivity()); - } else { - //LogUtils.d(TAG, "mApplication.getIsEnableService() " + Boolean.toString(mAppConfigUtils.getIsEnableService())); - ControlCenterService.stopControlCenterService(getActivity()); - } - mswIsEnableService.setText(getString(R.string.txt_aboveswitch)); - mtvTips.setText(getString(R.string.txt_aboveswitchtips)); - - } - - void setViewListener() { - // 初始化充电电量提醒设置控件 - mChargeReminderSeekBarChangeListener = new ChargeReminderSeekBarChangeListener(); - mChargeReminderSeekBar.setOnSeekBarChangeListener(mChargeReminderSeekBarChangeListener); - mcbIsEnableChargeReminder.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - LogUtils.d(TAG, "setIsEnableChargeReminder"); - mAppConfigUtils.setIsEnableChargeReminder(mcbIsEnableChargeReminder.isChecked()); - //ControlCenterService.updateIsEnableChargeReminder(mcbIsEnableChargeReminder.isChecked()); - } - }); - - - // 初始化耗电电量提醒设置控件 - mUsegeReminderSeekBarChangeListener = new UsegeReminderSeekBarChangeListener(); - mUsegeReminderSeekBar.setOnSeekBarChangeListener(mUsegeReminderSeekBarChangeListener); - mcbIsEnableUsegeReminder.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - LogUtils.d(TAG, "setIsEnableUsegeReminder"); - mAppConfigUtils.setIsEnableUsegeReminder(mcbIsEnableUsegeReminder.isChecked()); - //ControlCenterService.updateIsEnableUsegeReminder(mcbIsEnableUsegeReminder.isChecked()); - } - }); - - // 初始化服务总开关 - mswIsEnableService.setOnClickListener(new CompoundButton.OnClickListener() { - - @Override - public void onClick(View view) { - mAppConfigUtils.setIsEnableService(getActivity(), mswIsEnableService.isChecked()); - } - }); - } - - void setCurrentValueBattery(int value) { - //LogUtils.d(TAG, "setCurrentValueBattery"); - mtvCurrentValue.setText(Integer.toString(value) + "%"); - mCurrentValueBatteryDrawable.setValue(value); - mCurrentValueBatteryDrawable.invalidateSelf(); - } - - class ChargeReminderSeekBarChangeListener implements SeekBar.OnSeekBarChangeListener { - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - //LogUtils.d(TAG, "call onProgressChanged"); - int nChargeReminderValue = progress; - mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); - mChargeReminderValueBatteryDrawable.setValue(nChargeReminderValue); - mChargeReminderValueBatteryDrawable.invalidateSelf(); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - //LogUtils.d(TAG, "call onStartTrackingTouch"); - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - //LogUtils.d(TAG, "call onStopTrackingTouch"); - //取得当前进度条的刻度 - int nChargeReminderValue = ((VerticalSeekBar)seekBar)._mnProgress; - - mAppConfigUtils.setChargeReminderValue(nChargeReminderValue); - mtvChargeReminderValue.setText(Integer.toString(nChargeReminderValue) + "%"); - //ControlCenterService.updateChargeReminderValue(nChargeReminderValue); - } - } - - class UsegeReminderSeekBarChangeListener implements SeekBar.OnSeekBarChangeListener { - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - //LogUtils.d(TAG, "call onProgressChanged"); - int nUsegeReminderValue = progress; - mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); - mUsegeReminderValueBatteryDrawable.setValue(nUsegeReminderValue); - mUsegeReminderValueBatteryDrawable.invalidateSelf(); - - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - //LogUtils.d(TAG, "call onStartTrackingTouch"); - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - //LogUtils.d(TAG, "call onStopTrackingTouch"); - //取得当前进度条的刻度 - int nUsegeReminderValue = ((VerticalSeekBar)seekBar)._mnProgress; - LogUtils.d(TAG, "nUsegeReminderValue is " + Integer.toString(nUsegeReminderValue)); - //LogUtils.d(TAG, "mPowerReminder is " + mApplication); - mAppConfigUtils.setUsegeReminderValue(nUsegeReminderValue); - //LogUtils.d(TAG, "opopopopopopopop"); - mtvUsegeReminderValue.setText(Integer.toString(nUsegeReminderValue) + "%"); - //ControlCenterService.updateUsegeReminderValue(nUsegeReminderValue); - } - } - - public void reloadBackground() { - BackgroundSourceUtils utils = BackgroundSourceUtils.getInstance(getActivity()); - utils.loadSettings(); - BackgroundBean bean = utils.getCurrentBackgroundBean(); - mBackgroundView.loadBackgroundBean(bean); - } - - Handler mHandler = new Handler(){ - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case MSG_RELOAD_APPCONFIG : { - setViewData(); - break; - } - case MSG_CURRENTVALUEBATTERY : { - setCurrentValueBattery(msg.arg1); - break; - } - } - super.handleMessage(msg); - } - - }; - - public static void relaodAppConfigs() { - if (_mMainViewFragment != null) { - Handler handler = _mMainViewFragment.mHandler; - handler.sendMessage(handler.obtainMessage(MSG_RELOAD_APPCONFIG)); - } - } - - public static void sendMsgCurrentValueBattery(int value) { - if (_mMainViewFragment != null) { - Handler handler = _mMainViewFragment.mHandler; - Message msg = handler.obtainMessage(MSG_CURRENTVALUEBATTERY); - msg.arg1 = value; - handler.sendMessage(msg); - } - } + + } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java index 1f533a5..0053657 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java @@ -5,10 +5,9 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import cc.winboll.studio.powerbell.App; -import cc.winboll.studio.powerbell.fragments.MainViewFragment; +import cc.winboll.studio.powerbell.MainActivity; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BatteryUtils; -import cc.winboll.studio.powerbell.utils.NotificationHelper; public class GlobalApplicationReceiver extends BroadcastReceiver { @@ -48,7 +47,7 @@ public class GlobalApplicationReceiver extends BroadcastReceiver { //NotificationHelper.cancelRemindNotification(context); App.getAppCacheUtils(context).addChangingTime(nTheQuantityOfElectricity); - MainViewFragment.sendMsgCurrentValueBattery(nTheQuantityOfElectricity); + MainActivity.sendMsgCurrentValueBattery(nTheQuantityOfElectricity); // 保存好新的电池状态标志 _mIsCharging = isCharging; _mnTheQuantityOfElectricityOld = nTheQuantityOfElectricity; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java index 580d477..ccddf38 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java @@ -79,7 +79,7 @@ public class AppConfigUtils { @Override public void onNo() { - MainViewFragment.relaodAppConfigs(); + MainActivity.relaodAppConfigs(); } }); } @@ -183,7 +183,7 @@ public class AppConfigUtils { @Override public void onNo() { AppConfigUtils.getInstance(activity).loadAppConfigBean(); - MainViewFragment.relaodAppConfigs(); + MainActivity.relaodAppConfigs(); } }); } @@ -198,6 +198,6 @@ public class AppConfigUtils { AppConfigBean.saveBean(mContext, mAppConfigBean); // 通知活动窗口和服务配置已更新 ControlCenterService.updateStatus(mContext, mAppConfigBean); - MainViewFragment.relaodAppConfigs(); + MainActivity.relaodAppConfigs(); } } diff --git a/powerbell/src/main/res/layout/activity_main.xml b/powerbell/src/main/res/layout/activity_main.xml index d2f7b96..134b60c 100644 --- a/powerbell/src/main/res/layout/activity_main.xml +++ b/powerbell/src/main/res/layout/activity_main.xml @@ -23,10 +23,222 @@ android:layout_height="match_parent" android:id="@+id/activitymainRelativeLayout1"/> - + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -