Compare commits
26 Commits
apputils-v
...
apputils-v
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bd8947af1 | ||
|
|
28f2ada31a | ||
|
|
81669f03b3 | ||
|
|
980eb533bf | ||
|
|
4fcef89a10 | ||
|
|
3127a26056 | ||
|
|
897875b368 | ||
|
|
e12dd5630b | ||
|
|
23519f1ec9 | ||
|
|
7dc2668d42 | ||
|
|
63f424c149 | ||
|
|
ff9f5b42b9 | ||
|
|
077a5fc616 | ||
|
|
62fd671f6e | ||
|
|
3dd66d387a | ||
|
|
dab1412bc4 | ||
|
|
aca23ca727 | ||
|
|
5e8070ae01 | ||
|
|
d737766459 | ||
|
|
f8e9afddd1 | ||
|
|
f8bb5a7852 | ||
|
|
2be7e2cbaf | ||
|
|
24f598294e | ||
|
|
b5e918b364 | ||
|
|
50561a2f67 | ||
|
|
33726a306f |
@@ -25,7 +25,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "cc.winboll.studio.appbase"
|
applicationId "cc.winboll.studio.appbase"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 30
|
||||||
versionCode 1
|
versionCode 1
|
||||||
// versionName 更新后需要手动设置
|
// versionName 更新后需要手动设置
|
||||||
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Apr 28 21:17:52 HKT 2025
|
#Tue Apr 29 14:47:34 HKT 2025
|
||||||
stageCount=4
|
stageCount=7
|
||||||
libraryProject=libappbase
|
libraryProject=libappbase
|
||||||
baseVersion=15.7
|
baseVersion=15.7
|
||||||
publishVersion=15.7.3
|
publishVersion=15.7.6
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.7.4
|
baseBetaVersion=15.7.7
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".App"
|
android:name=".App"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_miapp"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:theme="@style/MyAPPBaseTheme"
|
android:theme="@style/MyAPPBaseTheme"
|
||||||
android:resizeableActivity="true"
|
android:resizeableActivity="true"
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ import android.app.Activity;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.Toolbar;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.Toolbar;
|
||||||
import cc.winboll.studio.appbase.R;
|
import cc.winboll.studio.appbase.R;
|
||||||
import cc.winboll.studio.appbase.activities.NewActivity;
|
import cc.winboll.studio.appbase.activities.NewActivity;
|
||||||
import cc.winboll.studio.appbase.services.MainService;
|
import cc.winboll.studio.appbase.services.MainService;
|
||||||
@@ -21,10 +21,9 @@ import cc.winboll.studio.libappbase.LogUtils;
|
|||||||
import cc.winboll.studio.libappbase.sos.SOS;
|
import cc.winboll.studio.libappbase.sos.SOS;
|
||||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
||||||
import cc.winboll.studio.libappbase.widgets.StatusWidget;
|
import cc.winboll.studio.libappbase.widgets.StatusWidget;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog;
|
|
||||||
|
|
||||||
public class MainActivity extends WinBollActivityBase implements IWinBollActivity {
|
public class MainActivity extends WinBoLLActivityBase implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "MainActivity";
|
public static final String TAG = "MainActivity";
|
||||||
|
|
||||||
@@ -48,7 +47,7 @@ public class MainActivity extends WinBollActivityBase implements IWinBollActivit
|
|||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
mToolbar = findViewById(R.id.toolbar);
|
mToolbar = findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(mToolbar);
|
setActionBar(mToolbar);
|
||||||
|
|
||||||
CheckBox cbIsDebugMode = findViewById(R.id.activitymainCheckBox1);
|
CheckBox cbIsDebugMode = findViewById(R.id.activitymainCheckBox1);
|
||||||
cbIsDebugMode.setChecked(GlobalApplication.isDebuging());
|
cbIsDebugMode.setChecked(GlobalApplication.isDebuging());
|
||||||
@@ -177,7 +176,7 @@ public class MainActivity extends WinBollActivityBase implements IWinBollActivit
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onTestOpenNewActivity(View view) {
|
public void onTestOpenNewActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class);
|
GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, NewActivity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,18 +8,17 @@ package cc.winboll.studio.appbase;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import cc.winboll.studio.appbase.App;
|
import cc.winboll.studio.appbase.App;
|
||||||
import cc.winboll.studio.appbase.R;
|
import cc.winboll.studio.appbase.R;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog;
|
import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
|
import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager;
|
||||||
|
|
||||||
public class WinBollActivityBase extends AppCompatActivity implements IWinBollActivity {
|
public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "WinBollActivityBase";
|
public static final String TAG = "WinBoLLActivityBase";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Activity getActivity() {
|
public Activity getActivity() {
|
||||||
@@ -31,14 +30,14 @@ public class WinBollActivityBase extends AppCompatActivity implements IWinBollAc
|
|||||||
return TAG;
|
return TAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
WinBollActivityManager getWinBollActivityManager() {
|
WinBoLLActivityManager getWinBoLLActivityManager() {
|
||||||
return WinBollActivityManager.getInstance(GlobalApplication.getInstance());
|
return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
getWinBollActivityManager().add(this);
|
getWinBoLLActivityManager().add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -50,7 +49,7 @@ public class WinBollActivityBase extends AppCompatActivity implements IWinBollAc
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
||||||
GlobalApplication.getWinBollActivityManager().startLogActivity(this);
|
GlobalApplication.getWinBoLLActivityManager().startLogActivity(this);
|
||||||
return true;
|
return true;
|
||||||
} else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) {
|
} else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) {
|
||||||
//moveTaskToBack(true);
|
//moveTaskToBack(true);
|
||||||
@@ -65,7 +64,7 @@ public class WinBollActivityBase extends AppCompatActivity implements IWinBollAc
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onYes() {
|
public void onYes() {
|
||||||
App.getWinBollActivityManager().finishAll();
|
App.getWinBoLLActivityManager().finishAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -77,6 +76,6 @@ public class WinBollActivityBase extends AppCompatActivity implements IWinBollAc
|
|||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
getWinBollActivityManager().registeRemove(this);
|
getWinBoLLActivityManager().registeRemove(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,16 +7,16 @@ package cc.winboll.studio.appbase.activities;
|
|||||||
*/
|
*/
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.Toolbar;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.Toolbar;
|
||||||
import cc.winboll.studio.appbase.R;
|
import cc.winboll.studio.appbase.R;
|
||||||
import cc.winboll.studio.appbase.WinBollActivityBase;
|
import cc.winboll.studio.appbase.WinBoLLActivityBase;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
|
|
||||||
public class New2Activity extends WinBollActivityBase implements IWinBollActivity {
|
public class New2Activity extends WinBoLLActivityBase implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "New2Activity";
|
public static final String TAG = "New2Activity";
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit
|
|||||||
// mLogView = findViewById(R.id.logview);
|
// mLogView = findViewById(R.id.logview);
|
||||||
// mLogView.start();
|
// mLogView.start();
|
||||||
mToolbar = findViewById(R.id.toolbar);
|
mToolbar = findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(mToolbar);
|
setActionBar(mToolbar);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,15 +52,15 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onCloseThisActivity(View view) {
|
public void onCloseThisActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().finish(this);
|
GlobalApplication.getWinBoLLActivityManager().finish(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCloseAllActivity(View view) {
|
public void onCloseAllActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().finishAll();
|
GlobalApplication.getWinBoLLActivityManager().finishAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onNewActivity(View view) {
|
public void onNewActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class);
|
GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, NewActivity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
||||||
GlobalApplication.getWinBollActivityManager().startLogActivity(this);
|
GlobalApplication.getWinBoLLActivityManager().startLogActivity(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。
|
// 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。
|
||||||
|
|||||||
@@ -6,16 +6,16 @@ package cc.winboll.studio.appbase.activities;
|
|||||||
*/
|
*/
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.Toolbar;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.Toolbar;
|
||||||
import cc.winboll.studio.appbase.R;
|
import cc.winboll.studio.appbase.R;
|
||||||
import cc.winboll.studio.appbase.WinBollActivityBase;
|
import cc.winboll.studio.appbase.WinBoLLActivityBase;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
|
|
||||||
public class NewActivity extends WinBollActivityBase implements IWinBollActivity {
|
public class NewActivity extends WinBoLLActivityBase implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "NewActivity";
|
public static final String TAG = "NewActivity";
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity
|
|||||||
// mLogView = findViewById(R.id.logview);
|
// mLogView = findViewById(R.id.logview);
|
||||||
// mLogView.start();
|
// mLogView.start();
|
||||||
mToolbar = findViewById(R.id.toolbar);
|
mToolbar = findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(mToolbar);
|
setActionBar(mToolbar);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,15 +50,15 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onCloseThisActivity(View view) {
|
public void onCloseThisActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().finish(this);
|
GlobalApplication.getWinBoLLActivityManager().finish(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCloseAllActivity(View view) {
|
public void onCloseAllActivity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().finishAll();
|
GlobalApplication.getWinBoLLActivityManager().finishAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onNew2Activity(View view) {
|
public void onNew2Activity(View view) {
|
||||||
GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, New2Activity.class);
|
GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, New2Activity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
|
||||||
GlobalApplication.getWinBollActivityManager().startLogActivity(this);
|
GlobalApplication.getWinBoLLActivityManager().startLogActivity(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。
|
// 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ import android.util.JsonWriter;
|
|||||||
import cc.winboll.studio.libappbase.BaseBean;
|
import cc.winboll.studio.libappbase.BaseBean;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class WinBollNewsBean extends BaseBean {
|
public class WinBoLLNewsBean extends BaseBean {
|
||||||
|
|
||||||
public static final String TAG = "WinBollNewsBean";
|
public static final String TAG = "WinBoLLNewsBean";
|
||||||
|
|
||||||
protected String message;
|
protected String message;
|
||||||
|
|
||||||
public WinBollNewsBean() {
|
public WinBoLLNewsBean() {
|
||||||
this.message = "";
|
this.message = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public WinBollNewsBean(String message) {
|
public WinBoLLNewsBean(String message) {
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ public class WinBollNewsBean extends BaseBean {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return WinBollNewsBean.class.getName();
|
return WinBoLLNewsBean.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -10,7 +10,7 @@ import android.content.ComponentName;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import cc.winboll.studio.appbase.models.WinBollNewsBean;
|
import cc.winboll.studio.appbase.models.WinBoLLNewsBean;
|
||||||
import cc.winboll.studio.appbase.services.MainService;
|
import cc.winboll.studio.appbase.services.MainService;
|
||||||
import cc.winboll.studio.appbase.widgets.APPNewsWidget;
|
import cc.winboll.studio.appbase.widgets.APPNewsWidget;
|
||||||
import cc.winboll.studio.libappbase.AppUtils;
|
import cc.winboll.studio.libappbase.AppUtils;
|
||||||
@@ -18,7 +18,7 @@ import cc.winboll.studio.libappbase.LogUtils;
|
|||||||
import cc.winboll.studio.libappbase.sos.APPModel;
|
import cc.winboll.studio.libappbase.sos.APPModel;
|
||||||
import cc.winboll.studio.libappbase.sos.SOS;
|
import cc.winboll.studio.libappbase.sos.SOS;
|
||||||
import cc.winboll.studio.libappbase.sos.SOSObject;
|
import cc.winboll.studio.libappbase.sos.SOSObject;
|
||||||
import cc.winboll.studio.libappbase.sos.WinBoll;
|
import cc.winboll.studio.libappbase.sos.WinBoLL;
|
||||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
@@ -42,11 +42,11 @@ public class MainReceiver extends BroadcastReceiver {
|
|||||||
String szAction = intent.getAction();
|
String szAction = intent.getAction();
|
||||||
if (szAction.equals(ACTION_BOOT_COMPLETED)) {
|
if (szAction.equals(ACTION_BOOT_COMPLETED)) {
|
||||||
ToastUtils.show("ACTION_BOOT_COMPLETED");
|
ToastUtils.show("ACTION_BOOT_COMPLETED");
|
||||||
} else if (szAction.equals(WinBoll.ACTION_BIND)) {
|
} else if (szAction.equals(WinBoLL.ACTION_BIND)) {
|
||||||
LogUtils.d(TAG, "ACTION_BIND");
|
LogUtils.d(TAG, "ACTION_BIND");
|
||||||
LogUtils.d(TAG, String.format("context.getPackageName() %s", context.getPackageName()));
|
LogUtils.d(TAG, String.format("context.getPackageName() %s", context.getPackageName()));
|
||||||
LogUtils.d(TAG, String.format("intent.getAction() %s", intent.getAction()));
|
LogUtils.d(TAG, String.format("intent.getAction() %s", intent.getAction()));
|
||||||
String szAPPModel = intent.getStringExtra(WinBoll.EXTRA_APPMODEL);
|
String szAPPModel = intent.getStringExtra(WinBoLL.EXTRA_APPMODEL);
|
||||||
LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel));
|
LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel));
|
||||||
if (szAPPModel != null && !szAPPModel.equals("")) {
|
if (szAPPModel != null && !szAPPModel.equals("")) {
|
||||||
try {
|
try {
|
||||||
@@ -80,7 +80,7 @@ public class MainReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
String appName = AppUtils.getAppNameByPackageName(context, szObjectPackageName);
|
String appName = AppUtils.getAppNameByPackageName(context, szObjectPackageName);
|
||||||
LogUtils.d(TAG, String.format("appName %s", appName));
|
LogUtils.d(TAG, String.format("appName %s", appName));
|
||||||
WinBollNewsBean appWinBollNewsBean = new WinBollNewsBean(appName);
|
WinBoLLNewsBean appWinBoLLNewsBean = new WinBoLLNewsBean(appName);
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||||
String currentTime = sdf.format(new Date());
|
String currentTime = sdf.format(new Date());
|
||||||
StringBuilder sbLine = new StringBuilder();
|
StringBuilder sbLine = new StringBuilder();
|
||||||
@@ -88,9 +88,9 @@ public class MainReceiver extends BroadcastReceiver {
|
|||||||
sbLine.append(currentTime);
|
sbLine.append(currentTime);
|
||||||
sbLine.append("] Power to ");
|
sbLine.append("] Power to ");
|
||||||
sbLine.append(appName);
|
sbLine.append(appName);
|
||||||
appWinBollNewsBean.setMessage(sbLine.toString());
|
appWinBoLLNewsBean.setMessage(sbLine.toString());
|
||||||
|
|
||||||
APPNewsWidget.addWinBollNewsBean(context, appWinBollNewsBean);
|
APPNewsWidget.addWinBoLLNewsBean(context, appWinBoLLNewsBean);
|
||||||
|
|
||||||
Intent intentWidget = new Intent(context, APPNewsWidget.class);
|
Intent intentWidget = new Intent(context, APPNewsWidget.class);
|
||||||
intentWidget.setAction(APPNewsWidget.ACTION_RELOAD_REPORT);
|
intentWidget.setAction(APPNewsWidget.ACTION_RELOAD_REPORT);
|
||||||
@@ -110,7 +110,7 @@ public class MainReceiver extends BroadcastReceiver {
|
|||||||
IntentFilter filter=new IntentFilter();
|
IntentFilter filter=new IntentFilter();
|
||||||
filter.addAction(ACTION_BOOT_COMPLETED);
|
filter.addAction(ACTION_BOOT_COMPLETED);
|
||||||
filter.addAction(SOS.ACTION_SOS);
|
filter.addAction(SOS.ACTION_SOS);
|
||||||
filter.addAction(WinBoll.ACTION_BIND);
|
filter.addAction(WinBoLL.ACTION_BIND);
|
||||||
//filter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
//filter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
||||||
service.registerReceiver(this, filter);
|
service.registerReceiver(this, filter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import android.os.Binder;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import cc.winboll.studio.appbase.models.TestDemoBindServiceBean;
|
import cc.winboll.studio.appbase.models.TestDemoBindServiceBean;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.sos.WinBoll;
|
import cc.winboll.studio.libappbase.sos.WinBoLL;
|
||||||
import cc.winboll.studio.appbase.App;
|
import cc.winboll.studio.appbase.App;
|
||||||
import cc.winboll.studio.libappbase.sos.SOS;
|
import cc.winboll.studio.libappbase.sos.SOS;
|
||||||
|
|
||||||
@@ -156,9 +156,9 @@ public class TestDemoBindService extends Service {
|
|||||||
super.run();
|
super.run();
|
||||||
LogUtils.d(TAG, "run() start");
|
LogUtils.d(TAG, "run() start");
|
||||||
if (App.isDebuging()) {
|
if (App.isDebuging()) {
|
||||||
WinBoll.bindToAPPBaseBeta(mContext, TestDemoBindService.class.getName());
|
WinBoLL.bindToAPPBaseBeta(mContext, TestDemoBindService.class.getName());
|
||||||
} else {
|
} else {
|
||||||
WinBoll.bindToAPPBase(mContext, TestDemoBindService.class.getName());
|
WinBoLL.bindToAPPBase(mContext, TestDemoBindService.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!isExit()) {
|
while (!isExit()) {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import android.os.Binder;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import cc.winboll.studio.appbase.models.TestDemoServiceBean;
|
import cc.winboll.studio.appbase.models.TestDemoServiceBean;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.sos.WinBoll;
|
import cc.winboll.studio.libappbase.sos.WinBoLL;
|
||||||
|
|
||||||
public class TestDemoService extends Service {
|
public class TestDemoService extends Service {
|
||||||
|
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.widget.RemoteViews;
|
import android.widget.RemoteViews;
|
||||||
import cc.winboll.studio.appbase.R;
|
import cc.winboll.studio.appbase.R;
|
||||||
import cc.winboll.studio.appbase.models.WinBollNewsBean;
|
import cc.winboll.studio.appbase.models.WinBoLLNewsBean;
|
||||||
import cc.winboll.studio.appbase.receivers.APPNewsWidgetClickListener;
|
import cc.winboll.studio.appbase.receivers.APPNewsWidgetClickListener;
|
||||||
import cc.winboll.studio.libappbase.AppUtils;
|
import cc.winboll.studio.libappbase.AppUtils;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.sos.APPModel;
|
import cc.winboll.studio.libappbase.sos.APPModel;
|
||||||
import cc.winboll.studio.libappbase.sos.WinBoll;
|
import cc.winboll.studio.libappbase.sos.WinBoLL;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -31,14 +31,14 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
public static final String ACTION_RELOAD_REPORT = APPNewsWidget.class.getName() + ".ACTION_RELOAD_REPORT";
|
public static final String ACTION_RELOAD_REPORT = APPNewsWidget.class.getName() + ".ACTION_RELOAD_REPORT";
|
||||||
|
|
||||||
|
|
||||||
volatile static ArrayList<WinBollNewsBean> _WinBollNewsBeanList;
|
volatile static ArrayList<WinBoLLNewsBean> _WinBoLLNewsBeanList;
|
||||||
final static int _MAX_PAGES = 10;
|
final static int _MAX_PAGES = 10;
|
||||||
final static int _OnePageLinesCount = 5;
|
final static int _OnePageLinesCount = 5;
|
||||||
volatile static int _CurrentPageIndex = 0;
|
volatile static int _CurrentPageIndex = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
|
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
|
||||||
initWinBollNewsBeanList(context);
|
initWinBoLLNewsBeanList(context);
|
||||||
for (int appWidgetId : appWidgetIds) {
|
for (int appWidgetId : appWidgetIds) {
|
||||||
updateAppWidget(context, appWidgetManager, appWidgetId);
|
updateAppWidget(context, appWidgetManager, appWidgetId);
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
super.onReceive(context, intent);
|
super.onReceive(context, intent);
|
||||||
initWinBollNewsBeanList(context);
|
initWinBoLLNewsBeanList(context);
|
||||||
if (intent.getAction().equals(ACTION_RELOAD_REPORT)) {
|
if (intent.getAction().equals(ACTION_RELOAD_REPORT)) {
|
||||||
LogUtils.d(TAG, "ACTION_RELOAD_REPORT");
|
LogUtils.d(TAG, "ACTION_RELOAD_REPORT");
|
||||||
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
||||||
@@ -57,7 +57,7 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
}
|
}
|
||||||
}else if (intent.getAction().equals(ACTION_WAKEUP_SERVICE)) {
|
}else if (intent.getAction().equals(ACTION_WAKEUP_SERVICE)) {
|
||||||
LogUtils.d(TAG, "ACTION_WAKEUP_SERVICE");
|
LogUtils.d(TAG, "ACTION_WAKEUP_SERVICE");
|
||||||
String szAPPModel = intent.getStringExtra(WinBoll.EXTRA_APPMODEL);
|
String szAPPModel = intent.getStringExtra(WinBoLL.EXTRA_APPMODEL);
|
||||||
LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel));
|
LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel));
|
||||||
if (szAPPModel != null && !szAPPModel.equals("")) {
|
if (szAPPModel != null && !szAPPModel.equals("")) {
|
||||||
try {
|
try {
|
||||||
@@ -71,7 +71,7 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
|
|
||||||
String appName = AppUtils.getAppNameByPackageName(context, szAppPackageName);
|
String appName = AppUtils.getAppNameByPackageName(context, szAppPackageName);
|
||||||
LogUtils.d(TAG, String.format("appName %s", appName));
|
LogUtils.d(TAG, String.format("appName %s", appName));
|
||||||
WinBollNewsBean winBollNewsBean = new WinBollNewsBean(appName);
|
WinBoLLNewsBean winBollNewsBean = new WinBoLLNewsBean(appName);
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||||
String currentTime = sdf.format(new Date());
|
String currentTime = sdf.format(new Date());
|
||||||
StringBuilder sbLine = new StringBuilder();
|
StringBuilder sbLine = new StringBuilder();
|
||||||
@@ -81,7 +81,7 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
sbLine.append(appName);
|
sbLine.append(appName);
|
||||||
winBollNewsBean.setMessage(sbLine.toString());
|
winBollNewsBean.setMessage(sbLine.toString());
|
||||||
|
|
||||||
addWinBollNewsBean(context, winBollNewsBean);
|
addWinBoLLNewsBean(context, winBollNewsBean);
|
||||||
|
|
||||||
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
||||||
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, APPNewsWidget.class));
|
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, APPNewsWidget.class));
|
||||||
@@ -99,24 +99,24 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
//
|
//
|
||||||
// 加入新报告信息
|
// 加入新报告信息
|
||||||
//
|
//
|
||||||
public synchronized static void addWinBollNewsBean(Context context, WinBollNewsBean bean) {
|
public synchronized static void addWinBoLLNewsBean(Context context, WinBoLLNewsBean bean) {
|
||||||
initWinBollNewsBeanList(context);
|
initWinBoLLNewsBeanList(context);
|
||||||
_WinBollNewsBeanList.add(0, bean);
|
_WinBoLLNewsBeanList.add(0, bean);
|
||||||
// 控制记录总数
|
// 控制记录总数
|
||||||
while (_WinBollNewsBeanList.size() > _MAX_PAGES * _OnePageLinesCount) {
|
while (_WinBoLLNewsBeanList.size() > _MAX_PAGES * _OnePageLinesCount) {
|
||||||
_WinBollNewsBeanList.remove(_WinBollNewsBeanList.size() - 1);
|
_WinBoLLNewsBeanList.remove(_WinBoLLNewsBeanList.size() - 1);
|
||||||
}
|
}
|
||||||
WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class);
|
WinBoLLNewsBean.saveBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized static void initWinBollNewsBeanList(Context context) {
|
synchronized static void initWinBoLLNewsBeanList(Context context) {
|
||||||
if (_WinBollNewsBeanList == null) {
|
if (_WinBoLLNewsBeanList == null) {
|
||||||
_WinBollNewsBeanList = new ArrayList<WinBollNewsBean>();
|
_WinBoLLNewsBeanList = new ArrayList<WinBoLLNewsBean>();
|
||||||
WinBollNewsBean.loadBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class);
|
WinBoLLNewsBean.loadBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class);
|
||||||
}
|
}
|
||||||
if (_WinBollNewsBeanList == null) {
|
if (_WinBoLLNewsBeanList == null) {
|
||||||
_WinBollNewsBeanList = new ArrayList<WinBollNewsBean>();
|
_WinBoLLNewsBeanList = new ArrayList<WinBoLLNewsBean>();
|
||||||
WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class);
|
WinBoLLNewsBean.saveBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,11 +141,11 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
|
|
||||||
public static String getMessage() {
|
public static String getMessage() {
|
||||||
ArrayList<String> msgTemp = new ArrayList<String>();
|
ArrayList<String> msgTemp = new ArrayList<String>();
|
||||||
if (_WinBollNewsBeanList != null) {
|
if (_WinBoLLNewsBeanList != null) {
|
||||||
int start = _OnePageLinesCount * _CurrentPageIndex;
|
int start = _OnePageLinesCount * _CurrentPageIndex;
|
||||||
start = _WinBollNewsBeanList.size() > start ? start : _WinBollNewsBeanList.size() - 1;
|
start = _WinBoLLNewsBeanList.size() > start ? start : _WinBoLLNewsBeanList.size() - 1;
|
||||||
for (int i = start, j = 0; i < _WinBollNewsBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) {
|
for (int i = start, j = 0; i < _WinBoLLNewsBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) {
|
||||||
msgTemp.add(_WinBollNewsBeanList.get(i).getMessage());
|
msgTemp.add(_WinBoLLNewsBeanList.get(i).getMessage());
|
||||||
}
|
}
|
||||||
String message = String.join("\n", msgTemp);
|
String message = String.join("\n", msgTemp);
|
||||||
return message;
|
return message;
|
||||||
@@ -154,7 +154,7 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void prePage(Context context) {
|
public static void prePage(Context context) {
|
||||||
if (_WinBollNewsBeanList != null) {
|
if (_WinBoLLNewsBeanList != null) {
|
||||||
if (_CurrentPageIndex > 0) {
|
if (_CurrentPageIndex > 0) {
|
||||||
_CurrentPageIndex = _CurrentPageIndex - 1;
|
_CurrentPageIndex = _CurrentPageIndex - 1;
|
||||||
}
|
}
|
||||||
@@ -165,8 +165,8 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void nextPage(Context context) {
|
public static void nextPage(Context context) {
|
||||||
if (_WinBollNewsBeanList != null) {
|
if (_WinBoLLNewsBeanList != null) {
|
||||||
if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _WinBollNewsBeanList.size()) {
|
if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _WinBoLLNewsBeanList.size()) {
|
||||||
_CurrentPageIndex = _CurrentPageIndex + 1;
|
_CurrentPageIndex = _CurrentPageIndex + 1;
|
||||||
}
|
}
|
||||||
Intent intentWidget = new Intent(context, APPNewsWidget.class);
|
Intent intentWidget = new Intent(context, APPNewsWidget.class);
|
||||||
@@ -176,11 +176,11 @@ public class APPNewsWidget extends AppWidgetProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String getPageInfo() {
|
String getPageInfo() {
|
||||||
if (_WinBollNewsBeanList == null) {
|
if (_WinBoLLNewsBeanList == null) {
|
||||||
return "0/0";
|
return "0/0";
|
||||||
}
|
}
|
||||||
int leftCount = _WinBollNewsBeanList.size() % _OnePageLinesCount;
|
int leftCount = _WinBoLLNewsBeanList.size() % _OnePageLinesCount;
|
||||||
int currentPageCount = _WinBollNewsBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1);
|
int currentPageCount = _WinBoLLNewsBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1);
|
||||||
return String.format("%d/%d", _CurrentPageIndex + 1, currentPageCount);
|
return String.format("%d/%d", _CurrentPageIndex + 1, currentPageCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<android.support.v7.widget.Toolbar
|
<android.widget.Toolbar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/toolbar"/>
|
android:id="@+id/toolbar"/>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Hello, WinBoll!"/>
|
android:text="Hello, WinBoLL!"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<android.support.v7.widget.Toolbar
|
<android.widget.Toolbar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/toolbar"/>
|
android:id="@+id/toolbar"/>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<android.support.v7.widget.Toolbar
|
<android.widget.Toolbar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/toolbar"/>
|
android:id="@+id/toolbar"/>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/tv_title"
|
android:id="@+id/tv_title"
|
||||||
android:layout_weight="1.0"
|
android:layout_weight="1.0"
|
||||||
android:text="WinBollNews"
|
android:text="WinBoLLNews"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:textSize="16sp"/>
|
android:textSize="16sp"/>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">AppBase</string>
|
<string name="app_name">AppBase</string>
|
||||||
<string name="tileservice_name">WinBoll</string>
|
<string name="tileservice_name">WinBoLL</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "cc.winboll.studio.apputils"
|
applicationId "cc.winboll.studio.apputils"
|
||||||
minSdkVersion 26
|
minSdkVersion 26
|
||||||
targetSdkVersion 29
|
targetSdkVersion 30
|
||||||
versionCode 1
|
versionCode 1
|
||||||
// versionName 更新后需要手动设置
|
// versionName 更新后需要手动设置
|
||||||
// 项目模块目录的 build.gradle 文件的 stageCount=0
|
// 项目模块目录的 build.gradle 文件的 stageCount=0
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Apr 28 21:34:43 HKT 2025
|
#Tue Apr 29 15:03:54 HKT 2025
|
||||||
stageCount=3
|
stageCount=5
|
||||||
libraryProject=libapputils
|
libraryProject=libapputils
|
||||||
baseVersion=15.3
|
baseVersion=15.3
|
||||||
publishVersion=15.3.2
|
publishVersion=15.3.4
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.3.3
|
baseBetaVersion=15.3.5
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ import android.view.MenuItem;
|
|||||||
import android.widget.Toolbar;
|
import android.widget.Toolbar;
|
||||||
import cc.winboll.studio.apputils.R;
|
import cc.winboll.studio.apputils.R;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libapputils.views.SimpleWebView;
|
import cc.winboll.studio.libapputils.views.SimpleWebView;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollActivity {
|
public class AssetsHtmlActivity extends WinBoLLActivityBase implements IWinBoLLActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Activity getActivity() {
|
public Activity getActivity() {
|
||||||
@@ -57,7 +57,7 @@ public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollA
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
// if (item.getItemId() == android.R.id.home) {
|
// if (item.getItemId() == android.R.id.home) {
|
||||||
// WinBollActivityManager.getInstance(this).finish(this);
|
// WinBoLLActivityManager.getInstance(this).finish(this);
|
||||||
// }
|
// }
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ final public class MainActivity extends Activity {
|
|||||||
//if (prosessIntents(getIntent())) return;
|
//if (prosessIntents(getIntent())) return;
|
||||||
// 以下正常创建主窗口
|
// 以下正常创建主窗口
|
||||||
|
|
||||||
// // 设置 WinBoll 应用 UI 类型
|
// // 设置 WinBoLL 应用 UI 类型
|
||||||
// WinBollApplication.setWinBollUI_TYPE(WinBollApplication.WinBollUI_TYPE.Aplication);
|
// WinBoLLApplication.setWinBoLLUI_TYPE(WinBoLLApplication.WinBoLLUI_TYPE.Aplication);
|
||||||
// //ToastUtils.show("WinBollUI_TYPE " + WinBollApplication.getWinBollUI_TYPE());
|
// //ToastUtils.show("WinBoLLUI_TYPE " + WinBoLLApplication.getWinBoLLUI_TYPE());
|
||||||
// LogUtils.d(TAG, "BuildConfig.DEBUG : " + Boolean.toString(BuildConfig.DEBUG));
|
// LogUtils.d(TAG, "BuildConfig.DEBUG : " + Boolean.toString(BuildConfig.DEBUG));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ final public class MainActivity extends Activity {
|
|||||||
if (intent.getAction() != null) {
|
if (intent.getAction() != null) {
|
||||||
// if (intent.getAction().equals(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW)) {
|
// if (intent.getAction().equals(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW)) {
|
||||||
// App.setIsDebug(true);
|
// App.setIsDebug(true);
|
||||||
// //ToastUtils.show!("WinBollApplication.setIsDebug(true) by action : " + intent.getAction());
|
// //ToastUtils.show!("WinBoLLApplication.setIsDebug(true) by action : " + intent.getAction());
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
@@ -130,12 +130,12 @@ final public class MainActivity extends Activity {
|
|||||||
protected void onPostCreate(Bundle savedInstanceState) {
|
protected void onPostCreate(Bundle savedInstanceState) {
|
||||||
super.onPostCreate(savedInstanceState);
|
super.onPostCreate(savedInstanceState);
|
||||||
// 缓存当前 activity
|
// 缓存当前 activity
|
||||||
//WinBollActivityManager.getInstance(this).add(this);
|
//WinBoLLActivityManager.getInstance(this).add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
//WinBollActivityManager.getInstance(this).registeRemove(this);
|
//WinBoLLActivityManager.getInstance(this).registeRemove(this);
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,8 +150,8 @@ final public class MainActivity extends Activity {
|
|||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
// intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||||
// startActivity(intent);
|
// startActivity(intent);
|
||||||
|
|
||||||
//WinBollActivityManager.getInstance().printAvtivityListInfo();
|
//WinBoLLActivityManager.getInstance().printAvtivityListInfo();
|
||||||
//WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
|
//WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, LogActivity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -165,7 +165,7 @@ final public class MainActivity extends Activity {
|
|||||||
|
|
||||||
// if (intent.getAction().equals(StringToQrCodeView.ACTION_UNITTEST_QRCODE)) {
|
// if (intent.getAction().equals(StringToQrCodeView.ACTION_UNITTEST_QRCODE)) {
|
||||||
// try {
|
// try {
|
||||||
// WinBollActivity clazzActivity = UnitTestActivity.class.newInstance();
|
// WinBoLLActivity clazzActivity = UnitTestActivity.class.newInstance();
|
||||||
// String tag = clazzActivity.getTag();
|
// String tag = clazzActivity.getTag();
|
||||||
// LogUtils.d(TAG, "String tag = clazzActivity.getTag(); tag " + tag);
|
// LogUtils.d(TAG, "String tag = clazzActivity.getTag(); tag " + tag);
|
||||||
// Intent subIntent = new Intent(this, UnitTestActivity.class);
|
// Intent subIntent = new Intent(this, UnitTestActivity.class);
|
||||||
@@ -183,8 +183,8 @@ final public class MainActivity extends Activity {
|
|||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// Files.copy(Paths.get(szSrcPath), Paths.get(file.getPath()));
|
// Files.copy(Paths.get(szSrcPath), Paths.get(file.getPath()));
|
||||||
// //startWinBollActivity(subIntent, tag);
|
// //startWinBoLLActivity(subIntent, tag);
|
||||||
// WinBollActivityManager.getInstance(this).startWinBollActivity(this, subIntent, UnitTestActivity.class);
|
// WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, subIntent, UnitTestActivity.class);
|
||||||
// } catch (IllegalAccessException | InstantiationException | IOException e) {
|
// } catch (IllegalAccessException | InstantiationException | IOException e) {
|
||||||
// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
// LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
// // 函数处理异常返回失败
|
// // 函数处理异常返回失败
|
||||||
@@ -201,8 +201,8 @@ final public class MainActivity extends Activity {
|
|||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
//ToastUtils.show("onCreateOptionsMenu");
|
//ToastUtils.show("onCreateOptionsMenu");
|
||||||
getMenuInflater().inflate(R.menu.toolbar_main, menu);
|
getMenuInflater().inflate(R.menu.toolbar_main, menu);
|
||||||
// if (isAddWinBollToolBar()) {
|
// if (isAddWinBoLLToolBar()) {
|
||||||
// //ToastUtils.show("mIWinBoll.isAddWinBollToolBar()");
|
// //ToastUtils.show("mIWinBoLL.isAddWinBoLLToolBar()");
|
||||||
// getMenuInflater().inflate(R.menu.toolbar_winboll_shared_main, menu);
|
// getMenuInflater().inflate(R.menu.toolbar_winboll_shared_main, menu);
|
||||||
// }
|
// }
|
||||||
if (App.isDebuging()) {
|
if (App.isDebuging()) {
|
||||||
@@ -220,7 +220,7 @@ final public class MainActivity extends Activity {
|
|||||||
} else if (item.getItemId() == R.id.item_teststringtoqrcodeview) {
|
} else if (item.getItemId() == R.id.item_teststringtoqrcodeview) {
|
||||||
Intent intent = new Intent(this, TestStringToQRCodeViewActivity.class);
|
Intent intent = new Intent(this, TestStringToQRCodeViewActivity.class);
|
||||||
startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY);
|
startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY);
|
||||||
//WinBollActivityManager.getInstance(this).startWinBollActivity(this, TestStringToQrCodeViewActivity.class);
|
//WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, TestStringToQrCodeViewActivity.class);
|
||||||
} else if (item.getItemId() == R.id.item_testqrcodedecodeactivity) {
|
} else if (item.getItemId() == R.id.item_testqrcodedecodeactivity) {
|
||||||
Intent intent = new Intent(this, QRCodeDecodeActivity.class);
|
Intent intent = new Intent(this, QRCodeDecodeActivity.class);
|
||||||
startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY);
|
startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY);
|
||||||
@@ -230,13 +230,13 @@ final public class MainActivity extends Activity {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.item_log) {
|
} else if (item.getItemId() == R.id.item_log) {
|
||||||
//WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
|
//WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, LogActivity.class);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.item_exitdebug) {
|
} else if (item.getItemId() == R.id.item_exitdebug) {
|
||||||
//AboutView.setApp2NormalMode(this);
|
//AboutView.setApp2NormalMode(this);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == android.R.id.home) {
|
} else if (item.getItemId() == android.R.id.home) {
|
||||||
//WinBollActivityManager.getInstance(this).finish(this);
|
//WinBoLLActivityManager.getInstance(this).finish(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
@@ -247,7 +247,7 @@ final public class MainActivity extends Activity {
|
|||||||
//
|
//
|
||||||
// @Override
|
// @Override
|
||||||
// public void onYes() {
|
// public void onYes() {
|
||||||
// //WinBollActivityManager.getInstance(getApplicationContext()).finishAll();
|
// //WinBoLLActivityManager.getInstance(getApplicationContext()).finishAll();
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// @Override
|
// @Override
|
||||||
@@ -260,10 +260,10 @@ final public class MainActivity extends Activity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
// if (WinBollActivityManager.getInstance(getApplicationContext()).isFirstIWinBollActivity(this)) {
|
// if (WinBoLLActivityManager.getInstance(getApplicationContext()).isFirstIWinBoLLActivity(this)) {
|
||||||
// exit();
|
// exit();
|
||||||
// } else {
|
// } else {
|
||||||
// WinBollActivityManager.getInstance(this).finish(this);
|
// WinBoLLActivityManager.getInstance(this).finish(this);
|
||||||
// super.onBackPressed();
|
// super.onBackPressed();
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
@@ -275,7 +275,7 @@ final public class MainActivity extends Activity {
|
|||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
//WinBollActivityManager.getInstance(this).startWinBollActivity(this, intent, AssetsHtmlActivity.class);
|
//WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, intent, AssetsHtmlActivity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ import android.app.Activity;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
|
import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
|
import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager;
|
||||||
|
|
||||||
public class WinBollActivityBase extends Activity implements IWinBollActivity {
|
public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "WinBollActivityBase";
|
public static final String TAG = "WinBoLLActivityBase";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Activity getActivity() {
|
public Activity getActivity() {
|
||||||
@@ -26,14 +26,14 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity {
|
|||||||
return TAG;
|
return TAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
WinBollActivityManager getWinBollActivityManager() {
|
WinBoLLActivityManager getWinBoLLActivityManager() {
|
||||||
return WinBollActivityManager.getInstance(GlobalApplication.getInstance());
|
return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
getWinBollActivityManager().add(this);
|
getWinBoLLActivityManager().add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -46,6 +46,6 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
getWinBollActivityManager().registeRemove(this);
|
getWinBoLLActivityManager().registeRemove(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- WinBoll 默认方案 -->
|
<!-- WinBoLL 默认方案 -->
|
||||||
<color name="colorPrimary">#FF196ABC</color>
|
<color name="colorPrimary">#FF196ABC</color>
|
||||||
<color name="colorPrimaryDark">#FF002B57</color>
|
<color name="colorPrimaryDark">#FF002B57</color>
|
||||||
<color name="colorAccent">#FF80BFFF</color>
|
<color name="colorAccent">#FF80BFFF</color>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 30
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
@@ -22,25 +22,4 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api fileTree(dir: 'libs', include: ['*.jar'])
|
api fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
|
||||||
// Android 类库
|
|
||||||
//api 'com.android.support:appcompat-v7:28.0.0'
|
|
||||||
api('com.android.support:appcompat-v7:28.0.0'){
|
|
||||||
//exclude group: "com.android.support", module: "support-vector-drawable"
|
|
||||||
exclude group: "com.android.support:animated-vector-drawable:28.0.0"
|
|
||||||
}
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-compat
|
|
||||||
//api 'com.android.support:support-compat:28.0.0' // 保留原有依赖(可选)
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-v4
|
|
||||||
api 'com.android.support:support-v4:28.0.0'
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-media-compat
|
|
||||||
api 'com.android.support:support-media-compat:28.0.0'
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-core-utils
|
|
||||||
api 'com.android.support:support-core-utils:28.0.0'
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-core-ui
|
|
||||||
api 'com.android.support:support-core-ui:28.0.0'
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/support-fragment
|
|
||||||
api 'com.android.support:support-fragment:28.0.0'
|
|
||||||
// https://mvnrepository.com/artifact/com.android.support/recyclerview-v7
|
|
||||||
api 'com.android.support:recyclerview-v7:28.0.0'
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Apr 28 21:17:52 HKT 2025
|
#Tue Apr 29 14:47:16 HKT 2025
|
||||||
stageCount=4
|
stageCount=7
|
||||||
libraryProject=libappbase
|
libraryProject=libappbase
|
||||||
baseVersion=15.7
|
baseVersion=15.7
|
||||||
publishVersion=15.7.3
|
publishVersion=15.7.6
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.7.4
|
baseBetaVersion=15.7.7
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
||||||
import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
|
import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager;
|
||||||
import cc.winboll.studio.libappbase.winboll.MyActivityLifecycleCallbacks;
|
import cc.winboll.studio.libappbase.winboll.MyActivityLifecycleCallbacks;
|
||||||
|
|
||||||
public class GlobalApplication extends Application {
|
public class GlobalApplication extends Application {
|
||||||
@@ -46,8 +46,8 @@ public class GlobalApplication extends Application {
|
|||||||
return isDebuging;
|
return isDebuging;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WinBollActivityManager getWinBollActivityManager() {
|
public static WinBoLLActivityManager getWinBoLLActivityManager() {
|
||||||
return WinBollActivityManager.getInstance(_GlobalApplication);
|
return WinBoLLActivityManager.getInstance(_GlobalApplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -77,7 +77,7 @@ public class GlobalApplication extends Application {
|
|||||||
setIsDebuging(appBaseModel.isDebuging());
|
setIsDebuging(appBaseModel.isDebuging());
|
||||||
}
|
}
|
||||||
|
|
||||||
getWinBollActivityManager().setWinBollUI_TYPE(WinBollActivityManager.WinBollUI_TYPE.Service);
|
getWinBoLLActivityManager().setWinBoLLUI_TYPE(WinBoLLActivityManager.WinBoLLUI_TYPE.Service);
|
||||||
// 注册窗口回调监听
|
// 注册窗口回调监听
|
||||||
mMyActivityLifecycleCallbacks = new MyActivityLifecycleCallbacks();
|
mMyActivityLifecycleCallbacks = new MyActivityLifecycleCallbacks();
|
||||||
registerActivityLifecycleCallbacks(mMyActivityLifecycleCallbacks);
|
registerActivityLifecycleCallbacks(mMyActivityLifecycleCallbacks);
|
||||||
|
|||||||
@@ -4,20 +4,19 @@ package cc.winboll.studio.libappbase;
|
|||||||
* @Author ZhanGSKen@AliYun.Com
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
* @Date 2025/02/11 00:14:05
|
* @Date 2025/02/11 00:14:05
|
||||||
*/
|
*/
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import cc.winboll.studio.libappbase.R;
|
import cc.winboll.studio.libappbase.R;
|
||||||
|
|
||||||
public final class GlobalCrashActivity extends AppCompatActivity implements MenuItem.OnMenuItemClickListener {
|
public final class GlobalCrashActivity extends Activity implements MenuItem.OnMenuItemClickListener {
|
||||||
|
|
||||||
private static final int MENUITEM_COPY = 0;
|
private static final int MENUITEM_COPY = 0;
|
||||||
private static final int MENUITEM_RESTART = 1;
|
private static final int MENUITEM_RESTART = 1;
|
||||||
@@ -39,10 +38,10 @@ public final class GlobalCrashActivity extends AppCompatActivity implements Menu
|
|||||||
setContentView(R.layout.activity_globalcrash);
|
setContentView(R.layout.activity_globalcrash);
|
||||||
mGlobalCrashReportView = findViewById(R.id.activityglobalcrashGlobalCrashReportView1);
|
mGlobalCrashReportView = findViewById(R.id.activityglobalcrashGlobalCrashReportView1);
|
||||||
mGlobalCrashReportView.setReport(mLog);
|
mGlobalCrashReportView.setReport(mLog);
|
||||||
setSupportActionBar(mGlobalCrashReportView.getToolbar());
|
setActionBar(mGlobalCrashReportView.getToolbar());
|
||||||
|
|
||||||
getSupportActionBar().setTitle(CrashHandler.TITTLE);
|
getActionBar().setTitle(CrashHandler.TITTLE);
|
||||||
getSupportActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext()));
|
getActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ package cc.winboll.studio.libappbase;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.support.v7.widget.Toolbar;
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.style.ForegroundColorSpan;
|
import android.text.style.ForegroundColorSpan;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
@@ -16,6 +15,7 @@ import android.view.Menu;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toolbar;
|
||||||
import cc.winboll.studio.libappbase.R;
|
import cc.winboll.studio.libappbase.R;
|
||||||
|
|
||||||
public class GlobalCrashReportView extends LinearLayout {
|
public class GlobalCrashReportView extends LinearLayout {
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
package cc.winboll.studio.libappbase;
|
|
||||||
|
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ package cc.winboll.studio.libappbase.sos;
|
|||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen@AliYun.Com
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
* @Date 2025/03/02 09:36:29
|
* @Date 2025/03/02 09:36:29
|
||||||
* @Describe WinBoll 应用 SOS 机理保护类
|
* @Describe WinBoLL 应用 SOS 机理保护类
|
||||||
*/
|
*/
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|||||||
@@ -3,17 +3,17 @@ package cc.winboll.studio.libappbase.sos;
|
|||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen@AliYun.Com
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
* @Date 2025/03/02 09:54:28
|
* @Date 2025/03/02 09:54:28
|
||||||
* @Describe WinBoll 系列应用通用管理类
|
* @Describe WinBoLL 系列应用通用管理类
|
||||||
*/
|
*/
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
|
||||||
public class WinBoll {
|
public class WinBoLL {
|
||||||
|
|
||||||
public static final String TAG = "WinBoll";
|
public static final String TAG = "WinBoLL";
|
||||||
|
|
||||||
public static final String ACTION_BIND = WinBoll.class.getName() + ".ACTION_BIND";
|
public static final String ACTION_BIND = WinBoLL.class.getName() + ".ACTION_BIND";
|
||||||
public static final String EXTRA_APPMODEL = "EXTRA_APPMODEL";
|
public static final String EXTRA_APPMODEL = "EXTRA_APPMODEL";
|
||||||
|
|
||||||
public static void bindToAPPBase(Context context, String appMainService) {
|
public static void bindToAPPBase(Context context, String appMainService) {
|
||||||
@@ -3,14 +3,14 @@ package cc.winboll.studio.libappbase.winboll;
|
|||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen@AliYun.Com
|
* @Author ZhanGSKen@AliYun.Com
|
||||||
* @Date 2025/03/24 08:23:40
|
* @Date 2025/03/24 08:23:40
|
||||||
* @Describe WinBoll 活动窗口通用接口
|
* @Describe WinBoLL 活动窗口通用接口
|
||||||
*/
|
*/
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.widget.Toolbar;
|
import android.widget.Toolbar;
|
||||||
|
|
||||||
public interface IWinBollActivity {
|
public interface IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "IWinBollActivity";
|
public static final String TAG = "IWinBoLLActivity";
|
||||||
|
|
||||||
// 获取活动窗口
|
// 获取活动窗口
|
||||||
abstract public Activity getActivity();
|
abstract public Activity getActivity();
|
||||||
@@ -13,7 +13,7 @@ import cc.winboll.studio.libappbase.LogView;
|
|||||||
import cc.winboll.studio.libappbase.R;
|
import cc.winboll.studio.libappbase.R;
|
||||||
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
import cc.winboll.studio.libappbase.utils.ToastUtils;
|
||||||
|
|
||||||
public class LogActivity extends Activity implements IWinBollActivity {
|
public class LogActivity extends Activity implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "LogActivity";
|
public static final String TAG = "LogActivity";
|
||||||
|
|
||||||
|
|||||||
@@ -19,70 +19,70 @@ import java.util.HashMap;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class WinBollActivityManager {
|
public class WinBoLLActivityManager {
|
||||||
|
|
||||||
public static final String TAG = "WinBollActivityManager";
|
public static final String TAG = "WinBoLLActivityManager";
|
||||||
public static final String EXTRA_TAG = "EXTRA_TAG";
|
public static final String EXTRA_TAG = "EXTRA_TAG";
|
||||||
|
|
||||||
public static enum WinBollUI_TYPE {
|
public static enum WinBoLLUI_TYPE {
|
||||||
Aplication, // 退出应用后,保持最近任务栏任务记录主窗口
|
Aplication, // 退出应用后,保持最近任务栏任务记录主窗口
|
||||||
Service // 退出应用后,清理所有最近任务栏任务记录窗口
|
Service // 退出应用后,清理所有最近任务栏任务记录窗口
|
||||||
};
|
};
|
||||||
|
|
||||||
// 应用类型标志
|
// 应用类型标志
|
||||||
static volatile WinBollUI_TYPE _mWinBollUI_TYPE = WinBollUI_TYPE.Service;
|
static volatile WinBoLLUI_TYPE _mWinBoLLUI_TYPE = WinBoLLUI_TYPE.Service;
|
||||||
|
|
||||||
GlobalApplication mGlobalApplication;
|
GlobalApplication mGlobalApplication;
|
||||||
static volatile WinBollActivityManager _Instance;
|
static volatile WinBoLLActivityManager _Instance;
|
||||||
static volatile Map<String, IWinBollActivity> _mapIWinBollList;
|
static volatile Map<String, IWinBoLLActivity> _mapIWinBoLLList;
|
||||||
volatile IWinBollActivity mFirstIWinBollActivity;
|
volatile IWinBoLLActivity mFirstIWinBoLLActivity;
|
||||||
|
|
||||||
WinBollActivityManager(GlobalApplication application) {
|
WinBoLLActivityManager(GlobalApplication application) {
|
||||||
mGlobalApplication = application;
|
mGlobalApplication = application;
|
||||||
_mapIWinBollList = new HashMap<String, IWinBollActivity>();
|
_mapIWinBoLLList = new HashMap<String, IWinBoLLActivity>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized WinBollActivityManager getInstance(GlobalApplication application) {
|
public static synchronized WinBoLLActivityManager getInstance(GlobalApplication application) {
|
||||||
LogUtils.d(TAG, "getInstance");
|
LogUtils.d(TAG, "getInstance");
|
||||||
if (_Instance == null) {
|
if (_Instance == null) {
|
||||||
LogUtils.d(TAG, "_Instance == null");
|
LogUtils.d(TAG, "_Instance == null");
|
||||||
_Instance = new WinBollActivityManager(application);
|
_Instance = new WinBoLLActivityManager(application);
|
||||||
}
|
}
|
||||||
return _Instance;
|
return _Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 设置 WinBoll 应用 UI 类型
|
// 设置 WinBoLL 应用 UI 类型
|
||||||
//
|
//
|
||||||
public synchronized static void setWinBollUI_TYPE(WinBollUI_TYPE mWinBollUI_TYPE) {
|
public synchronized static void setWinBoLLUI_TYPE(WinBoLLUI_TYPE mWinBoLLUI_TYPE) {
|
||||||
_mWinBollUI_TYPE = mWinBollUI_TYPE;
|
_mWinBoLLUI_TYPE = mWinBoLLUI_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 获取 WinBoll 应用 UI 类型
|
// 获取 WinBoLL 应用 UI 类型
|
||||||
//
|
//
|
||||||
public synchronized static WinBollUI_TYPE getWinBollUI_TYPE() {
|
public synchronized static WinBoLLUI_TYPE getWinBoLLUI_TYPE() {
|
||||||
return _mWinBollUI_TYPE;
|
return _mWinBoLLUI_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 把Activity添加到管理中
|
// 把Activity添加到管理中
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> void add(T iWinBoll) {
|
public <T extends IWinBoLLActivity> void add(T iWinBoLL) {
|
||||||
String tag = ((IWinBollActivity)iWinBoll).getTag();
|
String tag = ((IWinBoLLActivity)iWinBoLL).getTag();
|
||||||
LogUtils.d(TAG, String.format("add(T iWinBoll) tag is %s", tag));
|
LogUtils.d(TAG, String.format("add(T iWinBoLL) tag is %s", tag));
|
||||||
if (isActive(tag)) {
|
if (isActive(tag)) {
|
||||||
LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag));
|
LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag));
|
||||||
} else {
|
} else {
|
||||||
// 设置起始活动窗口,以便最后退出时提问
|
// 设置起始活动窗口,以便最后退出时提问
|
||||||
if (mFirstIWinBollActivity == null && _mapIWinBollList.size() == 0) {
|
if (mFirstIWinBoLLActivity == null && _mapIWinBoLLList.size() == 0) {
|
||||||
LogUtils.d(TAG, "Set firstIWinBollActivity, iWinBoll.getTag() is %s" + iWinBoll.getTag());
|
LogUtils.d(TAG, "Set firstIWinBoLLActivity, iWinBoLL.getTag() is %s" + iWinBoLL.getTag());
|
||||||
mFirstIWinBollActivity = iWinBoll;
|
mFirstIWinBoLLActivity = iWinBoLL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加到活动窗口列表
|
// 添加到活动窗口列表
|
||||||
_mapIWinBollList.put(iWinBoll.getTag(), iWinBoll);
|
_mapIWinBoLLList.put(iWinBoLL.getTag(), iWinBoLL);
|
||||||
LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoll.getTag(), _mapIWinBollList.size()));
|
LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoLL.getTag(), _mapIWinBoLLList.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,16 +93,16 @@ public class WinBollActivityManager {
|
|||||||
// activity: 不为 null 时,
|
// activity: 不为 null 时,
|
||||||
// intent.putExtra 函数 "tag" 参数为 activity.getTag()
|
// intent.putExtra 函数 "tag" 参数为 activity.getTag()
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> void startWinBollActivity(Context context, Class<T> clazz) {
|
public <T extends IWinBoLLActivity> void startWinBoLLActivity(Context context, Class<T> clazz) {
|
||||||
try {
|
try {
|
||||||
// 如果窗口已存在就重启窗口
|
// 如果窗口已存在就重启窗口
|
||||||
String tag = ((IWinBollActivity)clazz.newInstance()).getTag();
|
String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag();
|
||||||
LogUtils.d(TAG, String.format("startWinBollActivity(Context context, Class<T> clazz) tag is %s", tag));
|
LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Class<T> clazz) tag is %s", tag));
|
||||||
if (isActive(tag)) {
|
if (isActive(tag)) {
|
||||||
resumeActivity(context, tag);
|
resumeActivity(context, tag);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//ToastUtils.show("startWinBollActivity(Context context, Class<T> clazz)");
|
//ToastUtils.show("startWinBoLLActivity(Context context, Class<T> clazz)");
|
||||||
|
|
||||||
// 新建一个任务窗口
|
// 新建一个任务窗口
|
||||||
Intent intent = new Intent(context, clazz);
|
Intent intent = new Intent(context, clazz);
|
||||||
@@ -117,11 +117,11 @@ public class WinBollActivityManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends IWinBollActivity> void startWinBollActivity(Context context, Intent intent, Class<T> clazz) {
|
public <T extends IWinBoLLActivity> void startWinBoLLActivity(Context context, Intent intent, Class<T> clazz) {
|
||||||
try {
|
try {
|
||||||
// 如果窗口已存在就重启窗口
|
// 如果窗口已存在就重启窗口
|
||||||
String tag = ((IWinBollActivity)clazz.newInstance()).getTag();
|
String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag();
|
||||||
LogUtils.d(TAG, String.format("startWinBollActivity(Context context, Intent intent, Class<T> clazz) tag is %s", tag));
|
LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Intent intent, Class<T> clazz) tag is %s", tag));
|
||||||
if (isActive(tag)) {
|
if (isActive(tag)) {
|
||||||
resumeActivity(context, tag);
|
resumeActivity(context, tag);
|
||||||
return;
|
return;
|
||||||
@@ -140,7 +140,7 @@ public class WinBollActivityManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends IWinBollActivity> void startLogActivity(Context context) {
|
public <T extends IWinBoLLActivity> void startLogActivity(Context context) {
|
||||||
// 如果窗口已存在就重启窗口
|
// 如果窗口已存在就重启窗口
|
||||||
String tag = LogActivity.TAG;
|
String tag = LogActivity.TAG;
|
||||||
if (isActive(tag)) {
|
if (isActive(tag)) {
|
||||||
@@ -167,8 +167,8 @@ public class WinBollActivityManager {
|
|||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFirstIWinBollActivity(IWinBollActivity iWinBollActivity) {
|
public boolean isFirstIWinBoLLActivity(IWinBoLLActivity iWinBoLLActivity) {
|
||||||
return mFirstIWinBollActivity != null && mFirstIWinBollActivity == iWinBollActivity;
|
return mFirstIWinBoLLActivity != null && mFirstIWinBoLLActivity == iWinBoLLActivity;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -176,15 +176,15 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
public boolean isActive(String tag) {
|
public boolean isActive(String tag) {
|
||||||
LogUtils.d(TAG, String.format("isActive(String tag) tag is %s", tag));
|
LogUtils.d(TAG, String.format("isActive(String tag) tag is %s", tag));
|
||||||
//printIWinBollListInfo();
|
//printIWinBoLLListInfo();
|
||||||
IWinBollActivity iWinBoll = getIWinBoll(tag);
|
IWinBoLLActivity iWinBoLL = getIWinBoLL(tag);
|
||||||
if (iWinBoll != null) {
|
if (iWinBoLL != null) {
|
||||||
//LogUtils.d(TAG, "isActive(...) activity != null tag " + tag);
|
//LogUtils.d(TAG, "isActive(...) activity != null tag " + tag);
|
||||||
//ToastUtils.show("activity != null tag " + tag);
|
//ToastUtils.show("activity != null tag " + tag);
|
||||||
//判断是否为 BaseActivity,如果已经销毁,则移除
|
//判断是否为 BaseActivity,如果已经销毁,则移除
|
||||||
if (iWinBoll.getActivity().isFinishing() || iWinBoll.getActivity().isDestroyed()) {
|
if (iWinBoLL.getActivity().isFinishing() || iWinBoLL.getActivity().isDestroyed()) {
|
||||||
_mapIWinBollList.remove(iWinBoll.getTag());
|
_mapIWinBoLLList.remove(iWinBoLL.getTag());
|
||||||
//_mWinBollActivityList.remove(activity);
|
//_mWinBoLLActivityList.remove(activity);
|
||||||
LogUtils.d(TAG, String.format("isActive(...) remove activity.\ntag : %s", tag));
|
LogUtils.d(TAG, String.format("isActive(...) remove activity.\ntag : %s", tag));
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -192,44 +192,44 @@ public class WinBollActivityManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LogUtils.d(TAG, String.format("isActive(...) iWinBoll is null tag by %s", tag));
|
LogUtils.d(TAG, String.format("isActive(...) iWinBoLL is null tag by %s", tag));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static IWinBollActivity getIWinBoll(String tag) {
|
static IWinBoLLActivity getIWinBoLL(String tag) {
|
||||||
LogUtils.d(TAG, String.format("getIWinBoll(String tag) %s", tag));
|
LogUtils.d(TAG, String.format("getIWinBoLL(String tag) %s", tag));
|
||||||
return _mapIWinBollList.get(tag);
|
return _mapIWinBoLLList.get(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> void resumeActivity(Context context, String tag) {
|
public <T extends IWinBoLLActivity> void resumeActivity(Context context, String tag) {
|
||||||
LogUtils.d(TAG, "resumeActivity(Context context, String tag)");
|
LogUtils.d(TAG, "resumeActivity(Context context, String tag)");
|
||||||
T iWinBoll = (T)getIWinBoll(tag);
|
T iWinBoLL = (T)getIWinBoLL(tag);
|
||||||
LogUtils.d(TAG, String.format("iWinBoll.getTag() %s", iWinBoll.getTag()));
|
LogUtils.d(TAG, String.format("iWinBoLL.getTag() %s", iWinBoLL.getTag()));
|
||||||
//LogUtils.d(TAG, "activity " + activity.getTag());
|
//LogUtils.d(TAG, "activity " + activity.getTag());
|
||||||
if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) {
|
if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) {
|
||||||
resumeActivity(context, iWinBoll);
|
resumeActivity(context, iWinBoLL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> void resumeActivity(Context context, T iWinBoll) {
|
public <T extends IWinBoLLActivity> void resumeActivity(Context context, T iWinBoLL) {
|
||||||
LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoll)");
|
LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoLL)");
|
||||||
ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE);
|
ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
//返回启动它的根任务(home 或者 MainActivity)
|
//返回启动它的根任务(home 或者 MainActivity)
|
||||||
Intent intent = new Intent(mGlobalApplication, iWinBoll.getClass());
|
Intent intent = new Intent(mGlobalApplication, iWinBoLL.getClass());
|
||||||
TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication);
|
TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication);
|
||||||
stackBuilder.addNextIntentWithParentStack(intent);
|
stackBuilder.addNextIntentWithParentStack(intent);
|
||||||
stackBuilder.startActivities();
|
stackBuilder.startActivities();
|
||||||
//moveTaskToFront(YourTaskId, 0);
|
//moveTaskToFront(YourTaskId, 0);
|
||||||
//ToastUtils.show("resumeActivity am.moveTaskToFront");
|
//ToastUtils.show("resumeActivity am.moveTaskToFront");
|
||||||
LogUtils.d(TAG, String.format("iWinBoll.getActivity().getTaskId() %d", iWinBoll.getActivity().getTaskId()));
|
LogUtils.d(TAG, String.format("iWinBoLL.getActivity().getTaskId() %d", iWinBoLL.getActivity().getTaskId()));
|
||||||
am.moveTaskToFront(iWinBoll.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
|
am.moveTaskToFront(iWinBoLL.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
|
||||||
LogUtils.d(TAG, "am.moveTaskToFront");
|
LogUtils.d(TAG, "am.moveTaskToFront");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,23 +239,23 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
public void finishAll() {
|
public void finishAll() {
|
||||||
try {
|
try {
|
||||||
for (String key : _mapIWinBollList.keySet()) {
|
for (String key : _mapIWinBoLLList.keySet()) {
|
||||||
//System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key));
|
//System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key));
|
||||||
IWinBollActivity iWinBoll = _mapIWinBollList.get(key);
|
IWinBoLLActivity iWinBoLL = _mapIWinBoLLList.get(key);
|
||||||
//ToastUtils.show("finishAll() activity");
|
//ToastUtils.show("finishAll() activity");
|
||||||
if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) {
|
if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) {
|
||||||
//ToastUtils.show("activity != null ...");
|
//ToastUtils.show("activity != null ...");
|
||||||
if (getWinBollUI_TYPE() == WinBollUI_TYPE.Service) {
|
if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Service) {
|
||||||
// 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。
|
// 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。
|
||||||
iWinBoll.getActivity().finishAndRemoveTask();
|
iWinBoLL.getActivity().finishAndRemoveTask();
|
||||||
//ToastUtils.show("finishAll() activity.finishAndRemoveTask();");
|
//ToastUtils.show("finishAll() activity.finishAndRemoveTask();");
|
||||||
} else if (getWinBollUI_TYPE() == WinBollUI_TYPE.Aplication) {
|
} else if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Aplication) {
|
||||||
// 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。
|
// 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。
|
||||||
iWinBoll.getActivity().finish();
|
iWinBoLL.getActivity().finish();
|
||||||
//ToastUtils.show("finishAll() activity.finish();");
|
//ToastUtils.show("finishAll() activity.finish();");
|
||||||
} else {
|
} else {
|
||||||
LogUtils.d(TAG, "WinBollApplication.WinBollUI_TYPE error.");
|
LogUtils.d(TAG, "WinBoLLApplication.WinBoLLUI_TYPE error.");
|
||||||
//ToastUtils.show("WinBollApplication.WinBollUI_TYPE error.");
|
//ToastUtils.show("WinBoLLApplication.WinBoLLUI_TYPE error.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -267,14 +267,14 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
// 结束指定Activity
|
// 结束指定Activity
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> void finish(T iWinBoll) {
|
public <T extends IWinBoLLActivity> void finish(T iWinBoLL) {
|
||||||
try {
|
try {
|
||||||
if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) {
|
if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) {
|
||||||
//根据tag 移除 MyActivity
|
//根据tag 移除 MyActivity
|
||||||
//String tag= activity.getTag();
|
//String tag= activity.getTag();
|
||||||
//_mWinBollActivityList.remove(tag);
|
//_mWinBoLLActivityList.remove(tag);
|
||||||
//ToastUtils.show("remove");
|
//ToastUtils.show("remove");
|
||||||
//ToastUtils.show("_mWinBollActivityArrayMap.size() " + Integer.toString(_mWinBollActivityArrayMap.size()));
|
//ToastUtils.show("_mWinBoLLActivityArrayMap.size() " + Integer.toString(_mWinBoLLActivityArrayMap.size()));
|
||||||
|
|
||||||
// 窗口回调规则:
|
// 窗口回调规则:
|
||||||
// [] 当前窗口位置 >> 调度出的窗口位置
|
// [] 当前窗口位置 >> 调度出的窗口位置
|
||||||
@@ -284,10 +284,10 @@ public class WinBollActivityManager {
|
|||||||
// ★:0 1 2 3 [4] >> 3
|
// ★:0 1 2 3 [4] >> 3
|
||||||
// ★:[0] >> 直接关闭当前窗口
|
// ★:[0] >> 直接关闭当前窗口
|
||||||
//LogUtils.d(TAG, "finish no yet.");
|
//LogUtils.d(TAG, "finish no yet.");
|
||||||
IWinBollActivity preIWinBoll = getPreIWinBoll(iWinBoll);
|
IWinBoLLActivity preIWinBoLL = getPreIWinBoLL(iWinBoLL);
|
||||||
iWinBoll.getActivity().finish();
|
iWinBoLL.getActivity().finish();
|
||||||
if (preIWinBoll != null) {
|
if (preIWinBoLL != null) {
|
||||||
resumeActivity(mGlobalApplication, preIWinBoll);
|
resumeActivity(mGlobalApplication, preIWinBoLL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,21 +299,21 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
// 获取窗口队列中的前一个窗口
|
// 获取窗口队列中的前一个窗口
|
||||||
//
|
//
|
||||||
IWinBollActivity getPreIWinBoll(IWinBollActivity iWinBoll) {
|
IWinBoLLActivity getPreIWinBoLL(IWinBoLLActivity iWinBoLL) {
|
||||||
try {
|
try {
|
||||||
boolean bingo = false;
|
boolean bingo = false;
|
||||||
IWinBollActivity preIWinBoll = null;
|
IWinBoLLActivity preIWinBoLL = null;
|
||||||
for (Map.Entry<String, IWinBollActivity> entity : _mapIWinBollList.entrySet()) {
|
for (Map.Entry<String, IWinBoLLActivity> entity : _mapIWinBoLLList.entrySet()) {
|
||||||
if (entity.getKey().equals(iWinBoll.getTag())) {
|
if (entity.getKey().equals(iWinBoLL.getTag())) {
|
||||||
bingo = true;
|
bingo = true;
|
||||||
//LogUtils.d(TAG, "bingo");
|
//LogUtils.d(TAG, "bingo");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
preIWinBoll = entity.getValue();
|
preIWinBoLL = entity.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bingo) {
|
if (bingo) {
|
||||||
return preIWinBoll;
|
return preIWinBoLL;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
@@ -325,10 +325,10 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
// 从管理列表中移除管理项
|
// 从管理列表中移除管理项
|
||||||
//
|
//
|
||||||
public <T extends IWinBollActivity> boolean registeRemove(T activity) {
|
public <T extends IWinBoLLActivity> boolean registeRemove(T activity) {
|
||||||
IWinBollActivity iWinBollTest = _mapIWinBollList.get(activity.getTag());
|
IWinBoLLActivity iWinBoLLTest = _mapIWinBoLLList.get(activity.getTag());
|
||||||
if (iWinBollTest != null) {
|
if (iWinBoLLTest != null) {
|
||||||
_mapIWinBollList.remove(activity.getTag());
|
_mapIWinBoLLList.remove(activity.getTag());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -337,13 +337,13 @@ public class WinBollActivityManager {
|
|||||||
//
|
//
|
||||||
// 打印管理列表项列表里的信息
|
// 打印管理列表项列表里的信息
|
||||||
//
|
//
|
||||||
public static void printIWinBollListInfo() {
|
public static void printIWinBoLLListInfo() {
|
||||||
//LogUtils.d(TAG, "printAvtivityListInfo");
|
//LogUtils.d(TAG, "printAvtivityListInfo");
|
||||||
if (!_mapIWinBollList.isEmpty()) {
|
if (!_mapIWinBoLLList.isEmpty()) {
|
||||||
StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBollList.size()));
|
StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBoLLList.size()));
|
||||||
Iterator<Map.Entry<String, IWinBollActivity>> iterator = _mapIWinBollList.entrySet().iterator();
|
Iterator<Map.Entry<String, IWinBoLLActivity>> iterator = _mapIWinBoLLList.entrySet().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
Map.Entry<String, IWinBollActivity> entry = iterator.next();
|
Map.Entry<String, IWinBoLLActivity> entry = iterator.next();
|
||||||
sb.append("\nKey: " + entry.getKey() + ", \nValue: " + entry.getValue().getTag());
|
sb.append("\nKey: " + entry.getKey() + ", \nValue: " + entry.getValue().getTag());
|
||||||
//ToastUtils.show("\nKey: " + entry.getKey() + ", Value: " + entry.getValue().getTag());
|
//ToastUtils.show("\nKey: " + entry.getKey() + ", Value: " + entry.getValue().getTag());
|
||||||
}
|
}
|
||||||
BIN
libappbase/src/main/res/drawable/ic_miapp.png
Normal file
BIN
libappbase/src/main/res/drawable/ic_miapp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -7,7 +7,7 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/viewglobalcrashreportLinearLayout1">
|
android:id="@+id/viewglobalcrashreportLinearLayout1">
|
||||||
|
|
||||||
<android.support.v7.widget.Toolbar
|
<android.widget.Toolbar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/viewglobalcrashreportToolbar1"/>
|
android:id="@+id/viewglobalcrashreportToolbar1"/>
|
||||||
|
|||||||
@@ -1,25 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/item_minimal"
|
android:id="@+id/item_minimal"
|
||||||
android:title="MINIMAL"
|
android:title="MINIMAL"
|
||||||
android:icon="@drawable/ic_winboll_point"
|
android:icon="@drawable/ic_winboll_point"/>
|
||||||
app:showAsAction="always"/>
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/item_about"
|
android:id="@+id/item_about"
|
||||||
android:title="ABOUT"
|
android:title="ABOUT"
|
||||||
android:icon="@drawable/ic_winboll_logo"
|
android:icon="@drawable/ic_winboll_logo"/>
|
||||||
app:showAsAction="always"/>
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/item_help"
|
android:id="@+id/item_help"
|
||||||
android:title="HELP"
|
android:title="HELP"
|
||||||
android:icon="@drawable/ic_winboll_help"
|
android:icon="@drawable/ic_winboll_help"/>
|
||||||
app:showAsAction="always"/>
|
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/item_log"
|
android:id="@+id/item_log"
|
||||||
android:title="LOG"
|
android:title="LOG"
|
||||||
android:icon="@drawable/ic_winboll_log"
|
android:icon="@drawable/ic_winboll_log"/>
|
||||||
app:showAsAction="always"/>
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<style name="APPBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
<style name="APPBaseTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
|
||||||
<item name="themeGlobalCrashActivity">@style/GlobalCrashActivityTheme</item>
|
<item name="themeGlobalCrashActivity">@style/GlobalCrashActivityTheme</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 30
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
@@ -21,7 +21,7 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api fileTree(dir: 'libs', include: ['*.jar'])
|
api fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
api 'cc.winboll.studio:libappbase:15.4.8'
|
api 'cc.winboll.studio:libappbase:15.7.6'
|
||||||
|
|
||||||
// 二维码类库
|
// 二维码类库
|
||||||
api 'com.google.zxing:core:3.4.1'
|
api 'com.google.zxing:core:3.4.1'
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Apr 28 21:34:43 HKT 2025
|
#Tue Apr 29 15:03:54 HKT 2025
|
||||||
stageCount=3
|
stageCount=5
|
||||||
libraryProject=libapputils
|
libraryProject=libapputils
|
||||||
baseVersion=15.3
|
baseVersion=15.3
|
||||||
publishVersion=15.3.2
|
publishVersion=15.3.4
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.3.3
|
baseBetaVersion=15.3.5
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device - width, initial - scale = 1.0">
|
<meta name="viewport" content="width=device - width, initial - scale = 1.0">
|
||||||
<title>WinBoll-APP</title>
|
<title>WinBoLL-APP</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h2><a href="https://www.winboll.cc">访问 WWW.WinBoll.CC</a></h2>
|
<h2><a href="https://www.winboll.cc">访问 WWW.WinBoLL.CC</a></h2>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device - width, initial - scale = 1.0">
|
<meta name="viewport" content="width=device - width, initial - scale = 1.0">
|
||||||
<title>WinBoll</title>
|
<title>WinBoLL</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<canvas id="ChangeText">WinBoll Studio</canvas>
|
<canvas id="ChangeText">WinBoLL Studio</canvas>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
const COLOR = "#39BC54"; // 设定粒子特效颜色
|
const COLOR = "#39BC54"; // 设定粒子特效颜色
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public interface IAPPFiles {
|
|||||||
static String _mFilesRoot = "";
|
static String _mFilesRoot = "";
|
||||||
|
|
||||||
HashFile(Context context) {
|
HashFile(Context context) {
|
||||||
_mapFiles.put(UUID_WINBOLLCLIENTSERVICEBEAN_JSON, "/BaseBean/cc.winboll.studio.shared.service.WinBollClientServiceBean.json");
|
_mapFiles.put(UUID_WINBOLLCLIENTSERVICEBEAN_JSON, "/BaseBean/cc.winboll.studio.shared.service.WinBoLLClientServiceBean.json");
|
||||||
_mapFiles.put(UUID_LOGUTILS_JSON, "/LogUtils/LogUtils.json");
|
_mapFiles.put(UUID_LOGUTILS_JSON, "/LogUtils/LogUtils.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<style name="AppTheme" parent="@android:style/Theme.Material.Light">
|
<style name="AppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<style name="UtilsTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
|
<style name="UtilsTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user