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">
-
-
-
-
-
+
+
+
+
+
+
diff --git a/appbase/src/main/res/xml/widget_provider_info_sos.xml b/appbase/src/main/res/xml/widget_provider_info_sos.xml
index 469927d..e03bd34 100644
--- a/appbase/src/main/res/xml/widget_provider_info_sos.xml
+++ b/appbase/src/main/res/xml/widget_provider_info_sos.xml
@@ -3,5 +3,5 @@
android:minWidth="200dp"
android:minHeight="100dp"
android:updatePeriodMillis="1000"
- android:initialLayout="@layout/widget_sos">
+ android:initialLayout="@layout/widget_news">
diff --git a/libappbase/build.gradle b/libappbase/build.gradle
index 594d80d..4126ea5 100644
--- a/libappbase/build.gradle
+++ b/libappbase/build.gradle
@@ -20,13 +20,23 @@ android {
}
dependencies {
- api 'com.github.getActivity:ToastUtils:10.5'
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
- api 'androidx.appcompat:appcompat:1.3.1'
- api 'androidx.vectordrawable:vectordrawable:1.1.0'
- api 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
- api 'androidx.fragment:fragment:1.1.0'
- api 'com.google.android.material:material:1.1.0'
+ // 二维码类库
+ 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'
- api fileTree(dir: 'libs', include: ['*.jar'])
+ // 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/libappbase/build.properties b/libappbase/build.properties
index af188da..f9f7a0e 100644
--- a/libappbase/build.properties
+++ b/libappbase/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Tue Feb 25 16:51:09 HKT 2025
+#Thu Feb 27 02:21:32 GMT 2025
stageCount=3
libraryProject=libappbase
baseVersion=2.0
publishVersion=2.0.2
-buildCount=0
+buildCount=4
baseBetaVersion=2.0.3
diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/SOS.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java
similarity index 56%
rename from libappbase/src/main/java/cc/winboll/studio/libappbase/SOS.java
rename to libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java
index 0cb730e..1af3358 100644
--- a/libappbase/src/main/java/cc/winboll/studio/libappbase/SOS.java
+++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java
@@ -10,22 +10,24 @@ import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
-import cc.winboll.studio.libappbase.bean.APPSOSBean;
+import cc.winboll.studio.libappbase.bean.APPNewsBean;
import java.util.ArrayList;
-public class SOS {
+public class WinBoll {
- public static final String TAG = "SOS";
+ public static final String TAG = "WinBoll";
- public static final String ACTION_SOS = SOS.class.getName() + ".ACTION_SOS";
- public static final String ACTION_BIND = SOS.class.getName() + ".ACTION_BIND";
- public static final String ACTION_SERVICE_ENABLE = SOS.class.getName() + ".ACTION_SERVICE_ENABLE";
- public static final String ACTION_SERVICE_DISABLE = SOS.class.getName() + ".ACTION_SERVICE_DISENABLE";
+ public static final String ACTION_SOS = WinBoll.class.getName() + ".ACTION_SOS";
+ public static final String ACTION_BIND = WinBoll.class.getName() + ".ACTION_BIND";
+ public static final String ACTION_SERVICE_ENABLE = WinBoll.class.getName() + ".ACTION_SERVICE_ENABLE";
+ public static final String ACTION_SERVICE_DISABLE = WinBoll.class.getName() + ".ACTION_SERVICE_DISENABLE";
+ public static final String EXTRA_SOS = "EXTRA_SOS";
+ public static final String EXTRA_APPNEWSBEAN = "EXTRA_APPNEWSBEAN";
- public static void sosWinBollService(Context context, APPSOSBean bean) {
+ public static void sosService(Context context, APPNewsBean bean) {
Intent intent = new Intent(ACTION_SOS);
- intent.putExtra("SOS", "Service");
- intent.putExtra("APPSOSBean", bean.toString());
+ intent.putExtra(EXTRA_SOS, "Service");
+ intent.putExtra(EXTRA_APPNEWSBEAN, bean.toString());
String szToPackage = "";
if (GlobalApplication.isDebuging()) {
szToPackage = "cc.winboll.studio.appbase.beta";
@@ -39,10 +41,10 @@ public class SOS {
//ToastUtils.show("SOS Send To WinBoll");
}
- public static void bindToAPPService(Context context, APPSOSBean bean) {
+ public static void bindToAPPBase(Context context, APPNewsBean bean) {
Intent intent = new Intent(ACTION_BIND);
- intent.putExtra("SOS", "Service");
- intent.putExtra("APPSOSBean", bean.toString());
+ intent.putExtra(EXTRA_SOS, "Service");
+ intent.putExtra(EXTRA_APPNEWSBEAN, bean.toString());
String szToPackage = "";
if (GlobalApplication.isDebuging()) {
szToPackage = "cc.winboll.studio.appbase.beta";
diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPSOSBean.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPNewsBean.java
similarity index 52%
rename from libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPSOSBean.java
rename to libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPNewsBean.java
index d8e4e1b..13b1f07 100644
--- a/libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPSOSBean.java
+++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/bean/APPNewsBean.java
@@ -11,59 +11,59 @@ import cc.winboll.studio.libappbase.BaseBean;
import java.io.IOException;
import java.io.Serializable;
-public class APPSOSBean extends BaseBean {
+public class APPNewsBean extends BaseBean {
- public static final String TAG = "APPSOSBean";
+ public static final String TAG = "APPNewsBean";
- protected String sosPackage;
- protected String sosClassName;
+ protected String newsPackageName;
+ protected String newsClassName;
- public APPSOSBean() {
- this.sosPackage = "";
- this.sosClassName = "";
+ public APPNewsBean() {
+ this.newsPackageName = "";
+ this.newsClassName = "";
}
- public APPSOSBean(String sosPackage, String sosClassName) {
- this.sosPackage = sosPackage;
- this.sosClassName = sosClassName;
+ public APPNewsBean(String newsPackageName, String newsClassName) {
+ this.newsPackageName = newsPackageName;
+ this.newsClassName = newsClassName;
}
- public void setSosPackage(String sosPackage) {
- this.sosPackage = sosPackage;
+ public void setNewsPackageName(String newsPackageName) {
+ this.newsPackageName = newsPackageName;
}
- public String getSosPackage() {
- return sosPackage;
+ public String getNewsPackageName() {
+ return newsPackageName;
}
- public void setSosClassName(String sosClassName) {
- this.sosClassName = sosClassName;
+ public void setNewsClassName(String sosClassName) {
+ this.newsClassName = sosClassName;
}
- public String getSosClassName() {
- return sosClassName;
+ public String getNewsClassName() {
+ return newsClassName;
}
@Override
public String getName() {
- return APPSOSBean.class.getName();
+ return APPNewsBean.class.getName();
}
@Override
public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
super.writeThisToJsonWriter(jsonWriter);
- jsonWriter.name("sosPackage").value(getSosPackage());
- jsonWriter.name("sosClassName").value(getSosClassName());
+ jsonWriter.name("newsPackageName").value(getNewsPackageName());
+ jsonWriter.name("newsClassName").value(getNewsClassName());
}
@Override
public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException {
if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else {
- if (name.equals("sosPackage")) {
- setSosPackage(jsonReader.nextString());
- } else if (name.equals("sosClassName")) {
- setSosClassName(jsonReader.nextString());
+ if (name.equals("newsPackageName")) {
+ setNewsPackageName(jsonReader.nextString());
+ } else if (name.equals("newsClassName")) {
+ setNewsClassName(jsonReader.nextString());
} else {
return false;
}
diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/services/TestService.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/services/TestService.java
index fc86253..8a9a197 100644
--- a/libappbase/src/main/java/cc/winboll/studio/libappbase/services/TestService.java
+++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/services/TestService.java
@@ -11,8 +11,8 @@ import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
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 cc.winboll.studio.libappbase.bean.TestServiceBean;
public class TestService extends Service {
@@ -58,11 +58,11 @@ public class TestService extends Service {
if (bean == null) {
bean = new TestServiceBean();
}
- if (intent.getAction() != null && intent.getAction().equals(SOS.ACTION_SERVICE_ENABLE)) {
+ if (intent.getAction() != null && intent.getAction().equals(WinBoll.ACTION_SERVICE_ENABLE)) {
bean.setIsEnable(true);
TestServiceBean.saveBean(this, bean);
run();
- } else if (intent.getAction() != null && intent.getAction().equals(SOS.ACTION_SERVICE_DISABLE)) {
+ } else if (intent.getAction() != null && intent.getAction().equals(WinBoll.ACTION_SERVICE_DISABLE)) {
bean.setIsEnable(false);
TestServiceBean.saveBean(this, bean);
}
@@ -130,7 +130,7 @@ public class TestService extends Service {
isStarted = true;
super.run();
LogUtils.d(TAG, "run() start");
- SOS.bindToAPPService(mContext, new APPSOSBean(mContext.getPackageName(), TestService.class.getName()));
+ WinBoll.bindToAPPBase(mContext, new APPNewsBean(mContext.getPackageName(), TestService.class.getName()));
while (!isExit()) {
LogUtils.d(TAG, "run()");