From fb7017a857432fa4d65dcde6b58dc30a17122fc0 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Thu, 27 Feb 2025 11:05:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=BD=E5=90=8D=E7=A9=BA=E9=97=B4=E9=87=8D?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 20 ++- appbase/build.properties | 4 +- appbase/src/main/AndroidManifest.xml | 12 +- .../winboll/studio/appbase/MainActivity.java | 10 +- ...OSReportBean.java => WinBollNewsBean.java} | 28 ++--- .../appbase/receivers/MainReceiver.java | 60 ++++----- .../studio/appbase/services/MainService.java | 24 ++-- ...{SOSWidget.java => WinBollNewsWidget.java} | 114 +++++++++--------- ...va => WinBollNewsWidgetClickListener.java} | 12 +- .../{widget_sos.xml => widget_news.xml} | 39 +++--- .../main/res/xml/widget_provider_info_sos.xml | 2 +- libappbase/build.gradle | 24 ++-- libappbase/build.properties | 4 +- .../libappbase/{SOS.java => WinBoll.java} | 28 +++-- .../{APPSOSBean.java => APPNewsBean.java} | 50 ++++---- .../libappbase/services/TestService.java | 10 +- 16 files changed, 240 insertions(+), 201 deletions(-) rename appbase/src/main/java/cc/winboll/studio/appbase/beans/{SOSReportBean.java => WinBollNewsBean.java} (70%) rename appbase/src/main/java/cc/winboll/studio/appbase/widgets/{SOSWidget.java => WinBollNewsWidget.java} (54%) rename appbase/src/main/java/cc/winboll/studio/appbase/widgets/{SOSWidgetClickListener.java => WinBollNewsWidgetClickListener.java} (72%) rename appbase/src/main/res/layout/{widget_sos.xml => widget_news.xml} (53%) rename libappbase/src/main/java/cc/winboll/studio/libappbase/{SOS.java => WinBoll.java} (56%) rename libappbase/src/main/java/cc/winboll/studio/libappbase/bean/{APPSOSBean.java => APPNewsBean.java} (52%) diff --git a/appbase/build.gradle b/appbase/build.gradle index 6193aa5..d93b9f4 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -45,5 +45,23 @@ android { dependencies { api project(':libappbase') - api fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) + + // 二维码类库 + implementation 'com.google.zxing:core:3.4.1' + implementation 'com.journeyapps:zxing-android-embedded:3.6.0' + // 应用介绍页类库 + implementation 'io.github.medyo:android-about-page:2.0.0' + // 吐司类库 + implementation 'com.github.getActivity:ToastUtils:10.5' + // 网络连接类库 + implementation 'com.squareup.okhttp3:okhttp:4.4.1' + + // Android 类库 + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.viewpager:viewpager:1.0.0' + implementation 'androidx.vectordrawable:vectordrawable:1.1.0' + implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0' + implementation 'androidx.fragment:fragment:1.1.0' + implementation 'com.google.android.material:material:1.4.0' } diff --git a/appbase/build.properties b/appbase/build.properties index 9e59591..741f66b 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Feb 25 16:51:17 HKT 2025 +#Thu Feb 27 02:34:13 GMT 2025 stageCount=3 libraryProject=libappbase baseVersion=2.0 publishVersion=2.0.2 -buildCount=0 +buildCount=4 baseBetaVersion=2.0.3 diff --git a/appbase/src/main/AndroidManifest.xml b/appbase/src/main/AndroidManifest.xml index ed6e233..1ada098 100644 --- a/appbase/src/main/AndroidManifest.xml +++ b/appbase/src/main/AndroidManifest.xml @@ -60,12 +60,12 @@ - - + + @@ -75,13 +75,13 @@ - + - + - + diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java index 3e4cac0..9ac5266 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java @@ -12,9 +12,9 @@ import cc.winboll.studio.appbase.services.MainService; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogView; -import cc.winboll.studio.libappbase.SOS; +import cc.winboll.studio.libappbase.WinBoll; import cc.winboll.studio.libappbase.SimpleOperateSignalCenterService; -import cc.winboll.studio.libappbase.bean.APPSOSBean; +import cc.winboll.studio.libappbase.bean.APPNewsBean; import cc.winboll.studio.libappbase.services.TestService; import cc.winboll.studio.libappbase.widgets.StatusWidget; import com.hjq.toast.ToastUtils; @@ -90,19 +90,19 @@ public class MainActivity extends AppCompatActivity { public void onSOS(View view) { Intent intent = new Intent(this, TestService.class); stopService(intent); - SOS.sosWinBollService(this, new APPSOSBean(getPackageName(), TestService.class.getName())); + WinBoll.sosService(this, new APPNewsBean(getPackageName(), TestService.class.getName())); } public void onStartTestService(View view) { Intent intent = new Intent(this, TestService.class); - intent.setAction(SOS.ACTION_SERVICE_ENABLE); + intent.setAction(WinBoll.ACTION_SERVICE_ENABLE); startService(intent); } public void onStopTestService(View view) { Intent intent = new Intent(this, TestService.class); - intent.setAction(SOS.ACTION_SERVICE_DISABLE); + intent.setAction(WinBoll.ACTION_SERVICE_DISABLE); startService(intent); Intent intentStop = new Intent(this, TestService.class); diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/beans/SOSReportBean.java b/appbase/src/main/java/cc/winboll/studio/appbase/beans/WinBollNewsBean.java similarity index 70% rename from appbase/src/main/java/cc/winboll/studio/appbase/beans/SOSReportBean.java rename to appbase/src/main/java/cc/winboll/studio/appbase/beans/WinBollNewsBean.java index d579482..267f166 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/beans/SOSReportBean.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/beans/WinBollNewsBean.java @@ -10,45 +10,45 @@ import android.util.JsonWriter; import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; -public class SOSReportBean extends BaseBean { +public class WinBollNewsBean extends BaseBean { public static final String TAG = "APPSOSReportBean"; - protected String sosReport; + protected String message; - public SOSReportBean() { - this.sosReport = ""; + public WinBollNewsBean() { + this.message = ""; } - public SOSReportBean(String sosReport) { - this.sosReport = sosReport; + public WinBollNewsBean(String message) { + this.message = message; } - public void setSosReport(String sosReport) { - this.sosReport = sosReport; + public void setMessage(String message) { + this.message = message; } - public String getSosReport() { - return sosReport; + public String getMessage() { + return message; } @Override public String getName() { - return SOSReportBean.class.getName(); + return WinBollNewsBean.class.getName(); } @Override public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException { super.writeThisToJsonWriter(jsonWriter); - jsonWriter.name("sosReport").value(getSosReport()); + jsonWriter.name("message").value(getMessage()); } @Override public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException { if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else { - if (name.equals("sosReport")) { - setSosReport(jsonReader.nextString()); + if (name.equals("message")) { + setMessage(jsonReader.nextString()); } else { return false; } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java b/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java index 36b12ed..8b937dc 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java @@ -11,13 +11,13 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import cc.winboll.studio.appbase.beans.SOSReportBean; +import cc.winboll.studio.appbase.beans.WinBollNewsBean; import cc.winboll.studio.appbase.services.MainService; -import cc.winboll.studio.appbase.widgets.SOSWidget; +import cc.winboll.studio.appbase.widgets.WinBollNewsWidget; import cc.winboll.studio.libappbase.AppUtils; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.SOS; -import cc.winboll.studio.libappbase.bean.APPSOSBean; +import cc.winboll.studio.libappbase.WinBoll; +import cc.winboll.studio.libappbase.bean.APPNewsBean; import com.hjq.toast.ToastUtils; import java.io.IOException; import java.lang.ref.WeakReference; @@ -43,7 +43,7 @@ public class MainReceiver extends BroadcastReceiver { String szAction = intent.getAction(); if (szAction.equals(ACTION_BOOT_COMPLETED)) { ToastUtils.show("ACTION_BOOT_COMPLETED"); - } else if (szAction.equals(SOS.ACTION_BIND)) { + } else if (szAction.equals(WinBoll.ACTION_BIND)) { LogUtils.d(TAG, "ACTION_BIND"); LogUtils.d(TAG, String.format("context.getPackageName() %s", context.getPackageName())); LogUtils.d(TAG, String.format("intent.getAction() %s", intent.getAction())); @@ -54,12 +54,12 @@ public class MainReceiver extends BroadcastReceiver { LogUtils.d(TAG, String.format("szAPPSOSBean %s", szAPPSOSBean)); if (szAPPSOSBean != null && !szAPPSOSBean.equals("")) { try { - APPSOSBean bean = APPSOSBean.parseStringToBean(szAPPSOSBean, APPSOSBean.class); + APPNewsBean bean = APPNewsBean.parseStringToBean(szAPPSOSBean, APPNewsBean.class); if (bean != null) { - String sosPackage = bean.getSosPackage(); - LogUtils.d(TAG, String.format("sosPackage %s", sosPackage)); - String sosClassName = bean.getSosClassName(); - LogUtils.d(TAG, String.format("sosClassName %s", sosClassName)); + String szNewsPackageName = bean.getNewsPackageName(); + LogUtils.d(TAG, String.format("szNewsPackageName %s", szNewsPackageName)); + String szNewsClassName = bean.getNewsClassName(); + LogUtils.d(TAG, String.format("szNewsClassName %s", szNewsClassName)); mwrService.get().bindSOSConnection(bean); } } catch (IOException e) { @@ -67,31 +67,31 @@ public class MainReceiver extends BroadcastReceiver { } } } - } else if (intent.getAction().equals(SOS.ACTION_SOS)) { + } else if (intent.getAction().equals(WinBoll.ACTION_SOS)) { LogUtils.d(TAG, "ACTION_SOS"); LogUtils.d(TAG, String.format("context.getPackageName() %s", context.getPackageName())); LogUtils.d(TAG, String.format("intent.getAction() %s", intent.getAction())); String SOS = intent.getStringExtra("SOS"); LogUtils.d(TAG, String.format("SOS %s", SOS)); if (SOS != null && SOS.equals("Service")) { - String szAPPSOSBean = intent.getStringExtra("APPSOSBean"); - LogUtils.d(TAG, String.format("szAPPSOSBean %s", szAPPSOSBean)); - if (szAPPSOSBean != null && !szAPPSOSBean.equals("")) { + String szAPPNewsBean = intent.getStringExtra("APPSOSBean"); + LogUtils.d(TAG, String.format("szAPPNewsBean %s", szAPPNewsBean)); + if (szAPPNewsBean != null && !szAPPNewsBean.equals("")) { try { - APPSOSBean bean = APPSOSBean.parseStringToBean(szAPPSOSBean, APPSOSBean.class); + APPNewsBean bean = APPNewsBean.parseStringToBean(szAPPNewsBean, APPNewsBean.class); if (bean != null) { - String sosPackage = bean.getSosPackage(); - LogUtils.d(TAG, String.format("sosPackage %s", sosPackage)); - String sosClassName = bean.getSosClassName(); - LogUtils.d(TAG, String.format("sosClassName %s", sosClassName)); + String szNewsPackageName = bean.getNewsPackageName(); + LogUtils.d(TAG, String.format("szNewsPackageName %s", szNewsPackageName)); + String szNewsClassName = bean.getNewsClassName(); + LogUtils.d(TAG, String.format("szNewsClassName %s", szNewsClassName)); Intent intentService = new Intent(); - intentService.setComponent(new ComponentName(sosPackage, sosClassName)); + intentService.setComponent(new ComponentName(szNewsPackageName, szNewsClassName)); context.startService(intentService); - String appName = AppUtils.getAppNameByPackageName(context, sosPackage); + String appName = AppUtils.getAppNameByPackageName(context, szNewsPackageName); LogUtils.d(TAG, String.format("appName %s", appName)); - SOSReportBean appSOSReportBean = new SOSReportBean(appName); + WinBollNewsBean appWinBollNewsBean = new WinBollNewsBean(appName); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String currentTime = sdf.format(new Date()); StringBuilder sbLine = new StringBuilder(); @@ -99,12 +99,12 @@ public class MainReceiver extends BroadcastReceiver { sbLine.append(currentTime); sbLine.append("] Power to "); sbLine.append(appName); - appSOSReportBean.setSosReport(sbLine.toString()); + appWinBollNewsBean.setMessage(sbLine.toString()); - SOSWidget.addAPPSOSReportBean(context, appSOSReportBean); + WinBollNewsWidget.addWinBollNewsBean(context, appWinBollNewsBean); - Intent intentWidget = new Intent(context, SOSWidget.class); - intentWidget.setAction(SOSWidget.ACTION_RELOAD_REPORT); + Intent intentWidget = new Intent(context, WinBollNewsWidget.class); + intentWidget.setAction(WinBollNewsWidget.ACTION_RELOAD_REPORT); context.sendBroadcast(intentWidget); } } catch (IOException e) { @@ -122,10 +122,10 @@ public class MainReceiver extends BroadcastReceiver { public void registerAction(MainService service) { IntentFilter filter=new IntentFilter(); filter.addAction(ACTION_BOOT_COMPLETED); - filter.addAction(SOS.ACTION_SOS); - filter.addAction(SOS.ACTION_BIND); - filter.addAction(SOS.ACTION_SERVICE_ENABLE); - filter.addAction(SOS.ACTION_SERVICE_DISABLE); + filter.addAction(WinBoll.ACTION_SOS); + filter.addAction(WinBoll.ACTION_BIND); + filter.addAction(WinBoll.ACTION_SERVICE_ENABLE); + filter.addAction(WinBoll.ACTION_SERVICE_DISABLE); //filter.addAction(Intent.ACTION_BATTERY_CHANGED); service.registerReceiver(this, filter); } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/services/MainService.java b/appbase/src/main/java/cc/winboll/studio/appbase/services/MainService.java index 93e41b7..72b158a 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/services/MainService.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/services/MainService.java @@ -23,9 +23,9 @@ import cc.winboll.studio.appbase.handlers.MainServiceHandler; import cc.winboll.studio.appbase.receivers.MainReceiver; import cc.winboll.studio.appbase.services.AssistantService; import cc.winboll.studio.appbase.threads.MainServiceThread; -import cc.winboll.studio.appbase.widgets.SOSWidget; +import cc.winboll.studio.appbase.widgets.WinBollNewsWidget; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.bean.APPSOSBean; +import cc.winboll.studio.libappbase.bean.APPNewsBean; import java.util.ArrayList; public class MainService extends Service { @@ -101,8 +101,8 @@ public class MainService extends Service { } // 启动小部件 - Intent intentTimeWidget = new Intent(this, SOSWidget.class); - intentTimeWidget.setAction(SOSWidget.ACTION_RELOAD_REPORT); + Intent intentTimeWidget = new Intent(this, WinBollNewsWidget.class); + intentTimeWidget.setAction(WinBollNewsWidget.ACTION_RELOAD_REPORT); this.sendBroadcast(intentTimeWidget); startMainServiceThread(); @@ -192,7 +192,7 @@ public class MainService extends Service { } } - public void bindSOSConnection(APPSOSBean bean) { + public void bindSOSConnection(APPNewsBean bean) { LogUtils.d(TAG, "bindSOSConnection(...)"); // 清理旧的绑定链接 for (int i = mSOSConnectionList.size() - 1; i > -1; i--) { @@ -207,13 +207,13 @@ public class MainService extends Service { // 绑定服务 SOSConnection sosConnection = new SOSConnection(); Intent intentService = new Intent(); - intentService.setComponent(new ComponentName(bean.getSosPackage(), bean.getSosClassName())); + intentService.setComponent(new ComponentName(bean.getNewsPackageName(), bean.getNewsClassName())); bindService(intentService, sosConnection, Context.BIND_IMPORTANT); mSOSConnectionList.add(sosConnection); - Intent intentWidget = new Intent(this, SOSWidget.class); - intentWidget.setAction(SOSWidget.ACTION_WAKEUP_SERVICE); - APPSOSBean appSOSBean = new APPSOSBean(bean.getSosPackage(), bean.getSosClassName()); + Intent intentWidget = new Intent(this, WinBollNewsWidget.class); + intentWidget.setAction(WinBollNewsWidget.ACTION_WAKEUP_SERVICE); + APPNewsBean appSOSBean = new APPNewsBean(bean.getNewsPackageName(), bean.getNewsClassName()); intentWidget.putExtra("APPSOSBean", appSOSBean.toString()); sendBroadcast(intentWidget); } @@ -222,10 +222,10 @@ public class MainService extends Service { ComponentName mComponentName; - boolean isBindToAPPSOSBean(APPSOSBean bean) { + boolean isBindToAPPSOSBean(APPNewsBean bean) { return mComponentName != null - && mComponentName.getClassName().equals(bean.getSosClassName()) - && mComponentName.getPackageName().equals(bean.getSosPackage()); + && mComponentName.getClassName().equals(bean.getNewsClassName()) + && mComponentName.getPackageName().equals(bean.getNewsPackageName()); } @Override diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidget.java b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidget.java similarity index 54% rename from appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidget.java rename to appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidget.java index b614da9..65e0c76 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidget.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidget.java @@ -12,31 +12,31 @@ import android.content.Context; import android.content.Intent; import android.widget.RemoteViews; import cc.winboll.studio.appbase.R; -import cc.winboll.studio.appbase.beans.SOSReportBean; +import cc.winboll.studio.appbase.beans.WinBollNewsBean; import cc.winboll.studio.libappbase.AppUtils; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.bean.APPSOSBean; +import cc.winboll.studio.libappbase.bean.APPNewsBean; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; -public class SOSWidget extends AppWidgetProvider { +public class WinBollNewsWidget extends AppWidgetProvider { - public static final String TAG = "SOSWidget"; + public static final String TAG = "WinBollNewsWidget"; - public static final String ACTION_WAKEUP_SERVICE = "cc.winboll.studio.appbase.widgets.SOSWidget.ACTION_WAKEUP_SERVICE"; - public static final String ACTION_RELOAD_REPORT = "cc.winboll.studio.appbase.widgets.SOSWidget.ACTION_RELOAD_REPORT"; + public static final String ACTION_WAKEUP_SERVICE = "cc.winboll.studio.appbase.widgets.WinBollNewsWidget.ACTION_WAKEUP_SERVICE"; + public static final String ACTION_RELOAD_REPORT = "cc.winboll.studio.appbase.widgets.WinBollNewsWidget.ACTION_RELOAD_REPORT"; - volatile static ArrayList _SOSReportBeanList; + volatile static ArrayList _WinBollNewsBeanList; final static int _MAX_PAGES = 10; final static int _OnePageLinesCount = 5; volatile static int _CurrentPageIndex = 0; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - initAPPSOSReportBeanList(context); + initWinBollNewsBeanList(context); for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } @@ -45,31 +45,31 @@ public class SOSWidget extends AppWidgetProvider { @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); - initAPPSOSReportBeanList(context); + initWinBollNewsBeanList(context); if (intent.getAction().equals(ACTION_RELOAD_REPORT)) { LogUtils.d(TAG, "ACTION_RELOAD_REPORT"); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, SOSWidget.class)); + int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WinBollNewsWidget.class)); for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } }else if (intent.getAction().equals(ACTION_WAKEUP_SERVICE)) { LogUtils.d(TAG, "ACTION_WAKEUP_SERVICE"); - String szAPPSOSBean = intent.getStringExtra("APPSOSBean"); - LogUtils.d(TAG, String.format("szAPPSOSBean %s", szAPPSOSBean)); - if (szAPPSOSBean != null && !szAPPSOSBean.equals("")) { + String szWinBollNewsBean = intent.getStringExtra("WinBollNewsBean"); + LogUtils.d(TAG, String.format("szWinBollNewsBean %s", szWinBollNewsBean)); + if (szWinBollNewsBean != null && !szWinBollNewsBean.equals("")) { try { - APPSOSBean bean = APPSOSBean.parseStringToBean(szAPPSOSBean, APPSOSBean.class); + APPNewsBean bean = APPNewsBean.parseStringToBean(szWinBollNewsBean, APPNewsBean.class); if (bean != null) { - String sosPackage = bean.getSosPackage(); - LogUtils.d(TAG, String.format("sosPackage %s", sosPackage)); - String sosClassName = bean.getSosClassName(); - LogUtils.d(TAG, String.format("sosClassName %s", sosClassName)); + String szNewsPackageName = bean.getNewsPackageName(); + LogUtils.d(TAG, String.format("szNewsPackageName %s", szNewsPackageName)); + String szNewsClassName = bean.getNewsClassName(); + LogUtils.d(TAG, String.format("szNewsClassName %s", szNewsClassName)); - String appName = AppUtils.getAppNameByPackageName(context, sosPackage); + String appName = AppUtils.getAppNameByPackageName(context, szNewsPackageName); LogUtils.d(TAG, String.format("appName %s", appName)); - SOSReportBean appSOSReportBean = new SOSReportBean(appName); + WinBollNewsBean winBollNewsBean = new WinBollNewsBean(appName); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String currentTime = sdf.format(new Date()); StringBuilder sbLine = new StringBuilder(); @@ -77,12 +77,12 @@ public class SOSWidget extends AppWidgetProvider { sbLine.append(currentTime); sbLine.append("] Wake up "); sbLine.append(appName); - appSOSReportBean.setSosReport(sbLine.toString()); + winBollNewsBean.setMessage(sbLine.toString()); - addAPPSOSReportBean(context, appSOSReportBean); + addWinBollNewsBean(context, winBollNewsBean); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, SOSWidget.class)); + int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WinBollNewsWidget.class)); for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } @@ -97,53 +97,53 @@ public class SOSWidget extends AppWidgetProvider { // // 加入新报告信息 // - public synchronized static void addAPPSOSReportBean(Context context, SOSReportBean bean) { - initAPPSOSReportBeanList(context); - _SOSReportBeanList.add(0, bean); + public synchronized static void addWinBollNewsBean(Context context, WinBollNewsBean bean) { + initWinBollNewsBeanList(context); + _WinBollNewsBeanList.add(0, bean); // 控制记录总数 - while (_SOSReportBeanList.size() > _MAX_PAGES * _OnePageLinesCount) { - _SOSReportBeanList.remove(_SOSReportBeanList.size() - 1); + while (_WinBollNewsBeanList.size() > _MAX_PAGES * _OnePageLinesCount) { + _WinBollNewsBeanList.remove(_WinBollNewsBeanList.size() - 1); } - SOSReportBean.saveBeanList(context, _SOSReportBeanList, SOSReportBean.class); + WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); } - synchronized static void initAPPSOSReportBeanList(Context context) { - if (_SOSReportBeanList == null) { - _SOSReportBeanList = new ArrayList(); - SOSReportBean.loadBeanList(context, _SOSReportBeanList, SOSReportBean.class); + synchronized static void initWinBollNewsBeanList(Context context) { + if (_WinBollNewsBeanList == null) { + _WinBollNewsBeanList = new ArrayList(); + WinBollNewsBean.loadBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); } - if (_SOSReportBeanList == null) { - _SOSReportBeanList = new ArrayList(); - SOSReportBean.saveBeanList(context, _SOSReportBeanList, SOSReportBean.class); + if (_WinBollNewsBeanList == null) { + _WinBollNewsBeanList = new ArrayList(); + WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); } } private void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { LogUtils.d(TAG, "updateAppWidget(...)"); - RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_sos); + RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_news); //设置按钮点击事件 - Intent intentPre = new Intent(context, SOSWidgetClickListener.class); - intentPre.setAction(SOSWidgetClickListener.ACTION_PRE); + Intent intentPre = new Intent(context, WinBollNewsWidgetClickListener.class); + intentPre.setAction(WinBollNewsWidgetClickListener.ACTION_PRE); PendingIntent pendingIntentPre = PendingIntent.getBroadcast(context, 0, intentPre, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.widget_button_pre, pendingIntentPre); - Intent intentNext = new Intent(context, SOSWidgetClickListener.class); - intentNext.setAction(SOSWidgetClickListener.ACTION_NEXT); + Intent intentNext = new Intent(context, WinBollNewsWidgetClickListener.class); + intentNext.setAction(WinBollNewsWidgetClickListener.ACTION_NEXT); PendingIntent pendingIntentNext = PendingIntent.getBroadcast(context, 0, intentNext, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.widget_button_next, pendingIntentNext); - views.setTextViewText(R.id.infoTextView, getPageInfo()); - views.setTextViewText(R.id.sosReportTextView, getMessage()); + views.setTextViewText(R.id.tv_msg, getPageInfo()); + views.setTextViewText(R.id.tv_news, getMessage()); appWidgetManager.updateAppWidget(appWidgetId, views); } public static String getMessage() { ArrayList msgTemp = new ArrayList(); - if (_SOSReportBeanList != null) { + if (_WinBollNewsBeanList != null) { int start = _OnePageLinesCount * _CurrentPageIndex; - start = _SOSReportBeanList.size() > start ? start : _SOSReportBeanList.size() - 1; - for (int i = start, j = 0; i < _SOSReportBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) { - msgTemp.add(_SOSReportBeanList.get(i).getSosReport()); + start = _WinBollNewsBeanList.size() > start ? start : _WinBollNewsBeanList.size() - 1; + for (int i = start, j = 0; i < _WinBollNewsBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) { + msgTemp.add(_WinBollNewsBeanList.get(i).getMessage()); } String message = String.join("\n", msgTemp); return message; @@ -152,33 +152,33 @@ public class SOSWidget extends AppWidgetProvider { } public static void prePage(Context context) { - if (_SOSReportBeanList != null) { + if (_WinBollNewsBeanList != null) { if (_CurrentPageIndex > 0) { _CurrentPageIndex = _CurrentPageIndex - 1; } - Intent intentWidget = new Intent(context, SOSWidget.class); - intentWidget.setAction(SOSWidget.ACTION_RELOAD_REPORT); + Intent intentWidget = new Intent(context, WinBollNewsWidget.class); + intentWidget.setAction(WinBollNewsWidget.ACTION_RELOAD_REPORT); context.sendBroadcast(intentWidget); } } public static void nextPage(Context context) { - if (_SOSReportBeanList != null) { - if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _SOSReportBeanList.size()) { + if (_WinBollNewsBeanList != null) { + if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _WinBollNewsBeanList.size()) { _CurrentPageIndex = _CurrentPageIndex + 1; } - Intent intentWidget = new Intent(context, SOSWidget.class); - intentWidget.setAction(SOSWidget.ACTION_RELOAD_REPORT); + Intent intentWidget = new Intent(context, WinBollNewsWidget.class); + intentWidget.setAction(WinBollNewsWidget.ACTION_RELOAD_REPORT); context.sendBroadcast(intentWidget); } } String getPageInfo() { - if (_SOSReportBeanList == null) { + if (_WinBollNewsBeanList == null) { return "0/0"; } - int leftCount = _SOSReportBeanList.size() % _OnePageLinesCount; - int currentPageCount = _SOSReportBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1); + int leftCount = _WinBollNewsBeanList.size() % _OnePageLinesCount; + int currentPageCount = _WinBollNewsBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1); return String.format("%d/%d", _CurrentPageIndex + 1, currentPageCount); } } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidgetClickListener.java b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidgetClickListener.java similarity index 72% rename from appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidgetClickListener.java rename to appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidgetClickListener.java index 42dc31f..3ddf296 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/SOSWidgetClickListener.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/WinBollNewsWidgetClickListener.java @@ -10,11 +10,11 @@ import android.content.Context; import android.content.Intent; import cc.winboll.studio.libappbase.LogUtils; -public class SOSWidgetClickListener extends BroadcastReceiver { +public class WinBollNewsWidgetClickListener extends BroadcastReceiver { - public static final String TAG = "SOSWidgetClickListener"; - public static final String ACTION_PRE = "cc.winboll.studio.appbase.widgets.SOSWidgetClickListener.ACTION_PRE"; - public static final String ACTION_NEXT = "cc.winboll.studio.appbase.widgets.SOSWidgetClickListener.ACTION_NEXT"; + public static final String TAG = "WinBollNewsWidgetClickListener"; + public static final String ACTION_PRE = "cc.winboll.studio.appbase.widgets.WinBollNewsWidgetClickListener.ACTION_PRE"; + public static final String ACTION_NEXT = "cc.winboll.studio.appbase.widgets.WinBollNewsWidgetClickListener.ACTION_NEXT"; @Override public void onReceive(Context context, Intent intent) { @@ -25,10 +25,10 @@ public class SOSWidgetClickListener extends BroadcastReceiver { } if (action.equals(ACTION_PRE)) { LogUtils.d(TAG, "ACTION_PRE"); - SOSWidget.prePage(context); + WinBollNewsWidget.prePage(context); } else if (action.equals(ACTION_NEXT)) { LogUtils.d(TAG, "ACTION_NEXT"); - SOSWidget.nextPage(context); + WinBollNewsWidget.nextPage(context); } else { LogUtils.d(TAG, String.format("action %s", action)); } diff --git a/appbase/src/main/res/layout/widget_sos.xml b/appbase/src/main/res/layout/widget_news.xml similarity index 53% rename from appbase/src/main/res/layout/widget_sos.xml rename to appbase/src/main/res/layout/widget_news.xml index 994313b..f5741ae 100644 --- a/appbase/src/main/res/layout/widget_sos.xml +++ b/appbase/src/main/res/layout/widget_news.xml @@ -11,31 +11,40 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="right"> + android:gravity="right|center_vertical"> - - -