diff --git a/apputils/build.gradle b/apputils/build.gradle index 6e1573e..ce30b57 100644 --- a/apputils/build.gradle +++ b/apputils/build.gradle @@ -19,17 +19,17 @@ def genVersionName(def versionName){ android { compileSdkVersion 32 - buildToolsVersion "33.0.3" + buildToolsVersion "32.0.0" defaultConfig { applicationId "cc.winboll.studio.apputils" - minSdkVersion 21 - targetSdkVersion 30 + minSdkVersion 26 + targetSdkVersion 29 versionCode 1 // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "9.2" + versionName "15.2" if(true) { versionName = genVersionName("${versionName}") } @@ -41,15 +41,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } } dependencies { api project(':libapputils') - api 'cc.winboll.studio:libappbase:1.0.3' api fileTree(dir: 'libs', include: ['*.jar']) } diff --git a/apputils/build.properties b/apputils/build.properties index 9d55320..4fad09f 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Jan 18 13:03:10 HKT 2025 +#Sat Mar 29 12:14:55 HKT 2025 stageCount=2 libraryProject=libapputils -baseVersion=9.2 -publishVersion=9.2.1 +baseVersion=15.2 +publishVersion=15.2.1 buildCount=0 -baseBetaVersion=9.2.2 +baseBetaVersion=15.2.2 diff --git a/apputils/src/main/AndroidManifest.xml b/apputils/src/main/AndroidManifest.xml index 1a0c9c3..41176ff 100644 --- a/apputils/src/main/AndroidManifest.xml +++ b/apputils/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ android:allowBackup="true" android:icon="@drawable/ic_winboll" android:label="@string/app_name" - android:theme="@style/WinBoll.SupportThemeNoActionBar" + android:theme="@style/MyUtilsTheme" android:supportsRtl="true"> - + - + + + + + diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/App.java b/apputils/src/main/java/cc/winboll/studio/apputils/App.java index ca55cce..4c81010 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/App.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/App.java @@ -5,27 +5,16 @@ package cc.winboll.studio.apputils; * @Date 2024/12/08 15:10:51 * @Describe 全局应用类 */ -import android.view.Gravity; -import cc.winboll.studio.libapputils.app.WinBollApplication; -import com.hjq.toast.ToastUtils; -import com.hjq.toast.style.WhiteToastStyle; +import android.app.Application; +import android.content.Context; +import cc.winboll.studio.libappbase.GlobalApplication; -public class App extends WinBollApplication { +public class App extends GlobalApplication { public static final String TAG = "App"; - public static final String _ACTION_DEBUGVIEW = WinBollApplication.class.getName() + "_ACTION_DEBUGVIEW"; - @Override public void onCreate() { super.onCreate(); - // 初始化 Toast 框架 - // - ToastUtils.init(this); - // 设置 Toast 布局样式 - //ToastUtils.setView(R.layout.view_toast); - ToastUtils.setStyle(new WhiteToastStyle()); - ToastUtils.setGravity(Gravity.BOTTOM, 0, 200); } - } diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java similarity index 80% rename from libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java rename to apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java index 228ba89..432d5be 100644 --- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/AssetsHtmlActivity.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java @@ -1,59 +1,53 @@ -package cc.winboll.studio.libapputils.activities; +package cc.winboll.studio.apputils; /** * @Author ZhanGSKen@QQ.COM * @Date 2025/01/03 11:02:49 * @Describe 一个可以浏览随 APP 附带的 Html 文档的窗口 */ +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; -import androidx.appcompat.widget.Toolbar; -import cc.winboll.studio.libapputils.R; -import cc.winboll.studio.libapputils.app.WinBollActivity; -import cc.winboll.studio.libapputils.log.LogUtils; -import cc.winboll.studio.libapputils.view.SimpleWebView; -import com.hjq.toast.ToastUtils; +import android.widget.Toolbar; +import cc.winboll.studio.apputils.R; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libapputils.views.SimpleWebView; import java.io.IOException; import java.io.InputStream; -import android.os.PersistableBundle; -public class AssetsHtmlActivity extends WinBollActivity { +public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollActivity { - public static final String TAG = "AssetsHtmlActivity"; - - public static final String EXTRA_HTMLFILENAME = "EXTRA_HTMLFILENAME"; - - String mszHelpIndexFilePath = ""; - Uri mszHelpIndexFileUri; - Context mContext; - - // Assets 文件夹里的 Html 文件的名称 - String mszHtmlFileName; + @Override + public Activity getActivity() { + return super.getActivity(); + } @Override public String getTag() { return TAG; } - @Override - protected boolean isEnableDisplayHomeAsUp() { - return true; - } + public static final String TAG = "AssetsHtmlActivity"; - @Override - protected boolean isAddWinBollToolBar() { - return false; - } + public static final String EXTRA_HTMLFILENAME = "EXTRA_HTMLFILENAME"; - @Override - protected Toolbar initToolBar() { - return findViewById(R.id.activityassetshtmlToolbar1); - } + String mszHelpIndexFilePath = ""; + Uri mszHelpIndexFileUri; + Context mContext; + + // Assets 文件夹里的 Html 文件的名称 + String mszHtmlFileName; +// +// @Override +// public Activity getActivity() { +// return this; +// } @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -73,6 +67,10 @@ public class AssetsHtmlActivity extends WinBollActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_assetshtml); + // 初始化工具栏 + Toolbar mToolbar = findViewById(R.id.toolbar); + setActionBar(mToolbar); + mszHtmlFileName = "index.html"; Intent intent = getIntent(); @@ -81,7 +79,7 @@ public class AssetsHtmlActivity extends WinBollActivity { if (szTemp != null && !szTemp.trim().equals("")) { mszHtmlFileName = szTemp.trim(); } - ToastUtils.show(mszHtmlFileName); + //ToastUtils.show(mszHtmlFileName); } // 与其他应用分享 html 帮助 @@ -107,13 +105,6 @@ public class AssetsHtmlActivity extends WinBollActivity { // myWebView.loadUrl(mszHelpIndexFileUri.toString()); } - @Override - public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) { - super.onPostCreate(savedInstanceState, persistentState); - setSubTitle(mszHtmlFileName); - //setSubTitle(TAG); - } - // void initWebViewFromAssets(String szHtmlFileName) { try { diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java index 49963b5..afe1708 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java @@ -1,38 +1,60 @@ package cc.winboll.studio.apputils; +import android.app.Activity; +import android.content.ComponentName; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; -import androidx.appcompat.widget.Toolbar; -import cc.winboll.studio.libapputils.activities.AssetsHtmlActivity; -import cc.winboll.studio.libapputils.activities.QRCodeDecodeActivity; -import cc.winboll.studio.libapputils.app.WinBollActivity; -import cc.winboll.studio.libapputils.app.WinBollActivityManager; -import cc.winboll.studio.libapputils.log.LogActivity; -import cc.winboll.studio.libapputils.log.LogUtils; -import com.hjq.toast.ToastUtils; +import android.widget.Toolbar; +import cc.winboll.studio.apputils.R; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.LogView; +import cc.winboll.studio.libappbase.utils.ToastUtils; +import java.util.List; +import java.util.Set; -final public class MainActivity extends WinBollActivity { +final public class MainActivity extends Activity { public static final String TAG = "MainActivity"; public static final int REQUEST_QRCODEDECODE_ACTIVITY = 0; - @Override - protected boolean isEnableDisplayHomeAsUp() { - return false; - } + Toolbar mToolbar; + LogView mLogView; +// +// @Override +// public Activity getActivity() { +// return this; +// } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - //Toolbar toolbar = findViewById(R.id.activitymainToolbar1); - //setActionBar(toolbar); + mLogView = findViewById(R.id.logview); + mLogView.start(); + + // 初始化工具栏 + mToolbar = findViewById(R.id.toolbar); + setActionBar(mToolbar); +// if (isEnableDisplayHomeAsUp()) { +// // 显示后退按钮 +// getActionBar().setDisplayHomeAsUpEnabled(true); +// } +// getActionBar().setSubtitle(getTag()); + + checkResolveActivity(); + archiveInstance(); + + // 接收并处理 Intent 数据,函数 Intent 处理接收就直接返回 //if (prosessIntents(getIntent())) return; @@ -44,44 +66,94 @@ final public class MainActivity extends WinBollActivity { // LogUtils.d(TAG, "BuildConfig.DEBUG : " + Boolean.toString(BuildConfig.DEBUG)); } + boolean checkResolveActivity() { + PackageManager packageManager = getPackageManager(); + //Intent intent = new Intent("your_action_here"); + Intent intent = getIntent(); + if (intent != null) { + List resolveInfoList = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); + if (resolveInfoList.size() > 0) { + // 传入的Intent action在Activity清单的intent-filter的action节点里有定义 + if (intent.getAction() != null) { +// if (intent.getAction().equals(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW)) { +// App.setIsDebug(true); +// //ToastUtils.show!("WinBollApplication.setIsDebug(true) by action : " + intent.getAction()); +// +// } + } + return true; + } else { + // 传入的Intent action在Activity清单的intent-filter的action节点里没有定义 + //ToastUtils.show("false : " + intent.getAction()); + return false; + } + + } + + // action在清单文件中没有声明 + ToastUtils.show("false"); + return false; + } + + void archiveInstance() { + Intent intent = getIntent(); + StringBuilder sb = new StringBuilder("\n### Archive Instance ###\n"); + + if (intent != null) { + ComponentName componentName = intent.getComponent(); + if (componentName != null) { + String packageName = componentName.getPackageName(); + //Log.d("AppStarter", "启动本应用的应用包名: " + packageName); + sb.append("启动本应用的应用包名: \n" + packageName); + } + + sb.append("\nImplicit Intent Tracker :\n接收到的 Intent 动作: \n" + intent.getAction()); + Set categories = intent.getCategories(); + if (categories != null) { + for (String category : categories) { + sb.append("\n接收到的 Intent 类别 :\n" + category); + } + } + Uri data = intent.getData(); + if (data != null) { + sb.append("\n接收到的 Intent 数据 :\n" + data.toString()); + } + } else { + sb.append("Intent is null."); + } + sb.append("\n\n"); + LogUtils.d(TAG, sb.toString()); + } + + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // 缓存当前 activity + //WinBollActivityManager.getInstance(this).add(this); + } + + @Override + public void onDestroy() { + //WinBollActivityManager.getInstance(this).registeRemove(this); + super.onDestroy(); + } + public void onTestLogClick(View view) { LogUtils.d(TAG, "onTestLogClick"); Toast.makeText(getApplication(), "onTestLogClick", Toast.LENGTH_SHORT).show(); } - public void onLogUtilsClick(View view) { - Intent intent = new Intent(this, LogActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - startActivity(intent); - } + public void onTestLogActivity(View view) { +// Intent intent = new Intent(this, LogActivity.class); +// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); +// intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); +// startActivity(intent); - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); -// setSubTitle(""); + //WinBollActivityManager.getInstance().printAvtivityListInfo(); + //WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class); } - @Override - public void onBackPressed() { -// exit(); - } - -// void exit() { -// YesNoAlertDialog.OnDialogResultListener listener = new YesNoAlertDialog.OnDialogResultListener(){ -// -// @Override -// public void onYes() { -// WinBollActivityManager.getInstance(getApplicationContext()).finishAll(); -// } -// -// @Override -// public void onNo() { -// } -// }; -// YesNoAlertDialog.show(this, "[ " + getString(R.string.app_name) + " ]", "Exit(Yes/No).\nIs close all activity?", listener); -// } - // // 处理传入的 Intent 数据 // @@ -125,58 +197,107 @@ final public class MainActivity extends WinBollActivity { return true; } - @Override - public String getTag() { - return TAG; - } - - @Override - protected boolean isAddWinBollToolBar() { - return true; - } - - @Override - protected Toolbar initToolBar() { - return findViewById(R.id.activitymainToolbar1); - } - @Override public boolean onCreateOptionsMenu(Menu menu) { + //ToastUtils.show("onCreateOptionsMenu"); getMenuInflater().inflate(R.menu.toolbar_main, menu); +// if (isAddWinBollToolBar()) { +// //ToastUtils.show("mIWinBoll.isAddWinBollToolBar()"); +// getMenuInflater().inflate(R.menu.toolbar_winboll_shared_main, menu); +// } + if (App.isDebuging()) { + getMenuInflater().inflate(R.menu.toolbar_studio_debug, menu); + } + return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.item_testwinboll) { - WinBollActivityManager.getInstance(this).startWinBollActivity(this, TestWinBollActivity.class); + if (item.getItemId() == R.id.item_exit) { + //exit(); + return true; } else if (item.getItemId() == R.id.item_teststringtoqrcodeview) { - WinBollActivityManager.getInstance(this).startWinBollActivity(this, TestStringToQrCodeViewActivity.class); + Intent intent = new Intent(this, TestStringToQRCodeViewActivity.class); + startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY); + //WinBollActivityManager.getInstance(this).startWinBollActivity(this, TestStringToQrCodeViewActivity.class); } else if (item.getItemId() == R.id.item_testqrcodedecodeactivity) { Intent intent = new Intent(this, QRCodeDecodeActivity.class); startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY); + } else if (item.getItemId() == R.id.item_testcrashreport) { + for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) { + getString(i); + } + return true; + } else if (item.getItemId() == R.id.item_log) { + //WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class); + return true; + } else if (item.getItemId() == R.id.item_exitdebug) { + //AboutView.setApp2NormalMode(this); + return true; + } else if (item.getItemId() == android.R.id.home) { + //WinBollActivityManager.getInstance(this).finish(this); + return true; } return super.onOptionsItemSelected(item); } - public void onTestJavascriptHtmlActivity(View view) { +// void exit() { +// YesNoAlertDialog.OnDialogResultListener listener = new YesNoAlertDialog.OnDialogResultListener(){ +// +// @Override +// public void onYes() { +// //WinBollActivityManager.getInstance(getApplicationContext()).finishAll(); +// } +// +// @Override +// public void onNo() { +// } +// }; +// YesNoAlertDialog.show(this, "[ " + getString(R.string.app_name) + " ]", "Exit(Yes/No).\nIs close all activity?", listener); +// +// } + + @Override + public void onBackPressed() { +// if (WinBollActivityManager.getInstance(getApplicationContext()).isFirstIWinBollActivity(this)) { +// exit(); +// } else { +// WinBollActivityManager.getInstance(this).finish(this); +// super.onBackPressed(); +// } + } + + + public void onTestAssetsHtmlActivity(View view) { Intent intent = new Intent(this, AssetsHtmlActivity.class); intent.putExtra(AssetsHtmlActivity.EXTRA_HTMLFILENAME, "javascript_test.html"); - WinBollActivityManager.getInstance(this).startWinBollActivity(this, intent, AssetsHtmlActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + startActivity(intent); + //WinBollActivityManager.getInstance(this).startWinBollActivity(this, intent, AssetsHtmlActivity.class); } @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - switch (requestCode) { - case REQUEST_QRCODEDECODE_ACTIVITY : { - String text = data.getStringExtra(QRCodeDecodeActivity.EXTRA_RESULT); - ToastUtils.show(text); - break; - } - default : { - ToastUtils.show(String.format("%d, %d", requestCode, resultCode)); - super.onActivityResult(requestCode, resultCode, data); - } - } + protected void onResume() { + super.onResume(); + mLogView.start(); } + + /*@Override + protected void onActivithyResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case REQUEST_QRCODEDECODE_ACTIVITY : { + if (data != null) { + String text = data.getStringExtra(QRCodeDecodeActivity.EXTRA_RESULT); + ToastUtils.show(text); + } + break; + } + default : { + //ToastUtils.show(String.format("%d, %d", requestCode, resultCode)); + super.prosessActivityResult(requestCode, resultCode, data); + } + } + }*/ } diff --git a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/QRCodeDecodeActivity.java similarity index 67% rename from libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java rename to apputils/src/main/java/cc/winboll/studio/apputils/QRCodeDecodeActivity.java index a0d979c..cd74712 100644 --- a/libapputils/src/main/java/cc/winboll/studio/libapputils/activities/QRCodeDecodeActivity.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/QRCodeDecodeActivity.java @@ -1,72 +1,59 @@ -package cc.winboll.studio.libapputils.activities; +package cc.winboll.studio.apputils; /** * @Author ZhanGSKen@QQ.COM * @Date 2025/01/18 10:32:21 * @Describe 二维码扫码解码窗口 */ +import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.widget.TextView; -import androidx.appcompat.widget.Toolbar; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; -import cc.winboll.studio.libapputils.R; -import cc.winboll.studio.libapputils.app.WinBollActivity; +import android.widget.Toolbar; +import cc.winboll.studio.apputils.R; import com.google.zxing.ResultPoint; import com.journeyapps.barcodescanner.BarcodeCallback; import com.journeyapps.barcodescanner.BarcodeResult; import com.journeyapps.barcodescanner.DecoratedBarcodeView; import java.util.List; -public class QRCodeDecodeActivity extends WinBollActivity { +public class QRCodeDecodeActivity extends Activity { public static final String TAG = "QRCodeDecodeActivity"; - public static final String EXTRA_RESULT = "EXTRA_RESULT"; + public static final String EXTRA_RESULT = "EXTRA_RESULT"; private static final int REQUEST_CAMERA_PERMISSION = 1; + TextView resultTextView; DecoratedBarcodeView barcodeView; - - @Override - public String getTag() { - return TAG; - } - @Override - protected boolean isEnableDisplayHomeAsUp() { - return true; - } - - - @Override - protected boolean isAddWinBollToolBar() { - return false; - } - - @Override - protected Toolbar initToolBar() { - return findViewById(R.id.activityqrcodedecodeToolbar1); - } +// @Override +// public Activity getActivity() { +// return this; +// } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_qrcodedecode); - resultTextView = findViewById(R.id.activityqrcodedecodeTextView1); + + // 初始化工具栏 +// Toolbar mToolbar = findViewById(R.id.toolbar); +// setActionBar(mToolbar); + + //resultTextView = findViewById(R.id.activityqrcodedecodeTextView1); barcodeView = findViewById(R.id.activityqrcodedecodeDecoratedBarcodeView1); // 请求相机权限 - if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) - != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, - new String[]{android.Manifest.permission.CAMERA}, - REQUEST_CAMERA_PERMISSION); - } else { - startScanning(); - } - - +// if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) +// != PackageManager.PERMISSION_GRANTED) { +// ActivityCompat.requestPermissions(this, +// new String[]{android.Manifest.permission.CAMERA}, +// REQUEST_CAMERA_PERMISSION); +// } else { +// startScanning(); +// } + startScanning(); } private void startScanning() { diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/TestBBMorseCodeActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/TestBBMorseCodeActivity.java new file mode 100644 index 0000000..1781971 --- /dev/null +++ b/apputils/src/main/java/cc/winboll/studio/apputils/TestBBMorseCodeActivity.java @@ -0,0 +1,20 @@ +package cc.winboll.studio.apputils; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/23 16:14:45 + */ +import android.app.Activity; +import android.os.Bundle; + +public class TestBBMorseCodeActivity extends Activity { + + public static final String TAG = "TestBBMorseCodeActivity"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_testbbmorsecode); + + } +} diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQRCodeViewActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQRCodeViewActivity.java new file mode 100644 index 0000000..a77addd --- /dev/null +++ b/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQRCodeViewActivity.java @@ -0,0 +1,36 @@ +package cc.winboll.studio.apputils; + +/** + * @Author ZhanGSKen@QQ.COM + * @Date 2025/01/17 19:50:46 + */ +import android.app.Activity; +import android.os.Bundle; +import android.widget.Toolbar; +import cc.winboll.studio.apputils.R; +import cc.winboll.studio.libapputils.views.StringToQrCodeView; + +public class TestStringToQRCodeViewActivity extends Activity { + + public static final String TAG = "TestStringToQrCodeViewActivity"; + + StringToQrCodeView mStringToQrCodeView; +// +// @Override +// public Activity getActivity() { +// return this; +// } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_teststringtoqrcodeview); + + // 初始化工具栏 + Toolbar mToolbar = findViewById(R.id.toolbar); + mToolbar.setSubtitle(TAG); + setActionBar(mToolbar); + + mStringToQrCodeView = findViewById(R.id.activityteststringtoqrcodeviewStringToQrCodeView1); + } +} diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java deleted file mode 100644 index 06c80a3..0000000 --- a/apputils/src/main/java/cc/winboll/studio/apputils/TestStringToQrCodeViewActivity.java +++ /dev/null @@ -1,50 +0,0 @@ -package cc.winboll.studio.apputils; - -import android.os.Bundle; -import androidx.appcompat.widget.Toolbar; -import cc.winboll.studio.libapputils.app.WinBollActivity; -import cc.winboll.studio.libapputils.view.StringToQrCodeView; - -/** - * @Author ZhanGSKen@QQ.COM - * @Date 2025/01/17 19:50:46 - */ -public class TestStringToQrCodeViewActivity extends WinBollActivity { - - public static final String TAG = "TestStringToQrCodeViewActivity"; - - StringToQrCodeView mStringToQrCodeView; - - @Override - public String getTag() { - return TAG; - } - - @Override - protected Toolbar initToolBar() { - return findViewById(R.id.activityteststringtoqrcodeviewToolbar1); - } - - @Override - protected boolean isEnableDisplayHomeAsUp() { - return true; - } - - @Override - protected boolean isAddWinBollToolBar() { - return true; - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_teststringtoqrcodeview); - mStringToQrCodeView = findViewById(R.id.activityteststringtoqrcodeviewStringToQrCodeView1); - } - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - setSubTitle(TAG); - } -} diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/TestWinBollActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/TestWinBollActivity.java deleted file mode 100644 index 91bc4b4..0000000 --- a/apputils/src/main/java/cc/winboll/studio/apputils/TestWinBollActivity.java +++ /dev/null @@ -1,52 +0,0 @@ -package cc.winboll.studio.apputils; - -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import androidx.appcompat.widget.Toolbar; -import cc.winboll.studio.libapputils.activities.AssetsHtmlActivity; -import cc.winboll.studio.libapputils.app.WinBollActivity; -import cc.winboll.studio.libapputils.app.WinBollActivityManager; - -/** - * @Author ZhanGSKen@QQ.COM - * @Date 2025/01/13 15:09:46 - */ -public class TestWinBollActivity extends WinBollActivity { - - public static final String TAG = "TestWinBollActivity"; - - @Override - public String getTag() { - return TAG; - } - - @Override - protected Toolbar initToolBar() { - return findViewById(R.id.activitytestwinbollToolbar1); - } - - @Override - protected boolean isEnableDisplayHomeAsUp() { - return true; - } - - @Override - protected boolean isAddWinBollToolBar() { - return true; - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_testwinboll); - } - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - setSubTitle(TAG); - } - - -} diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java b/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java new file mode 100644 index 0000000..1e2e8cf --- /dev/null +++ b/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java @@ -0,0 +1,52 @@ +package cc.winboll.studio.apputils; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/28 17:11:37 + * @Describe 应用活动窗口基类 + */ +import android.app.Activity; +import android.os.Bundle; +import android.os.PersistableBundle; +import android.support.v7.app.AppCompatActivity; +import cc.winboll.studio.libappbase.GlobalApplication; +import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; + +public class WinBollActivityBase extends AppCompatActivity implements IWinBollActivity { + + public static final String TAG = "WinBollActivityBase"; + + @Override + public Activity getActivity() { + return this; + } + + @Override + public String getTag() { + return TAG; + } + + WinBollActivityManager getWinBollActivityManager() { + return WinBollActivityManager.getInstance(GlobalApplication.getInstance()); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWinBollActivityManager().add(this); + } + + @Override + public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) { + super.onPostCreate(savedInstanceState, persistentState); + } + + + + @Override + protected void onDestroy() { + super.onDestroy(); + getWinBollActivityManager().registeRemove(this); + } +} diff --git a/apputils/src/main/res/layout/activity_assetshtml.xml b/apputils/src/main/res/layout/activity_assetshtml.xml new file mode 100644 index 0000000..84e8f72 --- /dev/null +++ b/apputils/src/main/res/layout/activity_assetshtml.xml @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/apputils/src/main/res/layout/activity_main.xml b/apputils/src/main/res/layout/activity_main.xml index ad57465..7a07e44 100644 --- a/apputils/src/main/res/layout/activity_main.xml +++ b/apputils/src/main/res/layout/activity_main.xml @@ -5,10 +5,10 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:id="@+id/toolbar"/>