diff --git a/app_dashboard/changelog.md b/app_dashboard/changelog.md index 8c89f25..da1b44e 100644 --- a/app_dashboard/changelog.md +++ b/app_dashboard/changelog.md @@ -17,6 +17,8 @@ author: #### 更新记录 * 修正达到重试加载链接上限之后闪退的问题 +* 美化启动画面 +* 清除冗余代码 ### [1.1.0.32] - 2026.3.13 diff --git a/app_dashboard/src/main/AndroidManifest.xml b/app_dashboard/src/main/AndroidManifest.xml index a6ab014..43d9413 100644 --- a/app_dashboard/src/main/AndroidManifest.xml +++ b/app_dashboard/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ android:exported="false" android:label="@string/title_activity_settings" /> - 11 && Build.VERSION.SDK_INT < 19) { - decorView.setSystemUiVisibility(View.GONE); - } else if (Build.VERSION.SDK_INT >= 19) { - decorView.setSystemUiVisibility( - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - // Set the content to appear under the system bars so that the - // content doesn't resize when the system bars hide and show. - | View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - // Hide the nav bar and status bar - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN); - } - } - // Shows the system bars by removing all the flags - // except for the ones that make the content appear under the system bars. - private void showSystemUI() { - View decorView = getWindow().getDecorView(); - decorView.setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); - } -} diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/DashboardActivity.java similarity index 95% rename from app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java rename to app_dashboard/src/main/java/cn/ykbox/dashboard/activity/DashboardActivity.java index 729a6c4..63af2cc 100644 --- a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/BuildingDashboardActivity.java +++ b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/DashboardActivity.java @@ -1,7 +1,6 @@ package cn.ykbox.dashboard.activity; import android.app.ProgressDialog; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; @@ -29,11 +28,11 @@ import com.kongzue.dialogx.dialogs.TipDialog; import com.kongzue.dialogx.dialogs.WaitDialog; import cn.ykbox.dashboard.alarm.PowerAlarmManager; -import cn.ykbox.dashboard.databinding.ActivityBuildingDashboardBinding; +import cn.ykbox.dashboard.databinding.ActivityDashboardBinding; import cn.ykbox.dashboard.perferences.PreferenceConfiguration; import cn.ykbox.dashboard.serial.SerialPortDetector; -public class BuildingDashboardActivity extends FullscreenActivity { +public class DashboardActivity extends FullscreenActivity { private final static String TAG = "DashboardActivity"; private static final boolean AUTO_HIDE = true; private static final int AUTO_HIDE_DELAY_MILLIS = 3000; @@ -46,7 +45,7 @@ public class BuildingDashboardActivity extends FullscreenActivity { private PowerAlarmManager powerAlarmManager; - private ActivityBuildingDashboardBinding binding; + private ActivityDashboardBinding binding; private ActivityResultLauncher settingsLauncher; private SerialPortDetector detector; @@ -70,7 +69,7 @@ public class BuildingDashboardActivity extends FullscreenActivity { @Override protected void onCreate(Bundle savedInstanceState) { - binding = ActivityBuildingDashboardBinding.inflate(getLayoutInflater()); + binding = ActivityDashboardBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); super.setViews(binding.webview, binding.fullscreenContentControls); @@ -181,11 +180,11 @@ public class BuildingDashboardActivity extends FullscreenActivity { if (progressDialog != null) { progressDialog.dismiss(); } - Toast.makeText(BuildingDashboardActivity.this, + Toast.makeText(DashboardActivity.this, "串口检测成功!\n路径: " + portPath, Toast.LENGTH_LONG).show(); - PreferenceConfiguration.setSerialPortPath(BuildingDashboardActivity.this, portPath); + PreferenceConfiguration.setSerialPortPath(DashboardActivity.this, portPath); }); } @@ -210,7 +209,7 @@ public class BuildingDashboardActivity extends FullscreenActivity { * 显示检测失败的对话框 */ private void showDetectionFailedDialog() { - Toast.makeText(BuildingDashboardActivity.this, + Toast.makeText(DashboardActivity.this, "未找到有效的串口设备,请检查设备连接后重试。", Toast.LENGTH_LONG).show(); } @@ -358,7 +357,7 @@ public class BuildingDashboardActivity extends FullscreenActivity { Log.d(TAG, "Power control preference changed: " + key); runOnUiThread(() -> { if (key.equals("k_power_control_mode")) { - int mode = PreferenceConfiguration.getPowerControlMode(BuildingDashboardActivity.this); + int mode = PreferenceConfiguration.getPowerControlMode(DashboardActivity.this); powerAlarmManager.onModeChanged(mode); } else { // 本地时间变更 diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/FullscreenActivity.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/FullscreenActivity.java index 860948a..13c77ff 100644 --- a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/FullscreenActivity.java +++ b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/FullscreenActivity.java @@ -22,10 +22,14 @@ public class FullscreenActivity extends AppCompatActivity { private static final int UI_ANIMATION_DELAY = 300; private final Handler mHideHandler = new Handler(Looper.myLooper()); private View mContentView; + private View mControlsView; private final Runnable mHidePart2Runnable = new Runnable() { @SuppressLint("InlinedApi") @Override public void run() { + if(mContentView == null) + return; + // Delayed removal of status and navigation bar if (Build.VERSION.SDK_INT >= 30) { mContentView.getWindowInsetsController().hide( @@ -43,7 +47,6 @@ public class FullscreenActivity extends AppCompatActivity { } } }; - private View mControlsView; private final Runnable mShowPart2Runnable = new Runnable() { @Override public void run() { @@ -52,7 +55,9 @@ public class FullscreenActivity extends AppCompatActivity { if (actionBar != null) { actionBar.show(); } - mControlsView.setVisibility(View.VISIBLE); + + if(mControlsView != null) + mControlsView.setVisibility(View.VISIBLE); } }; private boolean mVisible; @@ -76,9 +81,8 @@ public class FullscreenActivity extends AppCompatActivity { // } // }); - mContentView.setOnTouchListener(new View.OnTouchListener() { - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { + if(mContentView != null) { + mContentView.setOnTouchListener((view, motionEvent) -> { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: toggle(); @@ -90,8 +94,8 @@ public class FullscreenActivity extends AppCompatActivity { break; } return false; - } - }); + }); + } } @Override @@ -120,7 +124,8 @@ public class FullscreenActivity extends AppCompatActivity { if (actionBar != null) { actionBar.hide(); } - mControlsView.setVisibility(View.GONE); + if(mControlsView != null) + mControlsView.setVisibility(View.GONE); mVisible = false; // Schedule a runnable to remove the status and navigation bar after a delay @@ -130,12 +135,14 @@ public class FullscreenActivity extends AppCompatActivity { private void show() { // Show the system bar - if (Build.VERSION.SDK_INT >= 30) { - mContentView.getWindowInsetsController().show( - WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars()); - } else { - mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + if(mContentView != null) { + if (Build.VERSION.SDK_INT >= 30) { + mContentView.getWindowInsetsController().show( + WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars()); + } else { + mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } } mVisible = true; diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/GalleryActivity.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/GalleryActivity.java deleted file mode 100644 index 59756b0..0000000 --- a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/GalleryActivity.java +++ /dev/null @@ -1,75 +0,0 @@ -package cn.ykbox.dashboard.activity; - -import android.content.Context; -import android.os.Bundle; -import android.os.Handler; -import android.os.SystemClock; -import android.util.Log; -import android.view.MotionEvent; - -import com.blankj.utilcode.util.ScreenUtils; -import com.bumptech.glide.Glide; -import com.youth.banner.adapter.BannerImageAdapter; -import com.youth.banner.holder.BannerImageHolder; -import com.youth.banner.indicator.CircleIndicator; - -import cn.ykbox.dashboard.data.BannerBean; -import cn.ykbox.dashboard.databinding.ActivityGalleryBinding; - -/** - * An example full-screen activity that shows and hides the system UI (i.e. - * status bar and navigation/system bar) with user interaction. - */ -public class GalleryActivity extends BaseActivity { - - private ActivityGalleryBinding binding; - private Context mContext; - - private Handler mHandler = new Handler(); - - private final static int CON_COUNTS = 6;// 连续点击次数 - private final static long CON_DURATION = 1500;// 连续点击最小间隔时间 - private static long[] CON_Hits = new long[CON_COUNTS]; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - mContext = this; - - binding = ActivityGalleryBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); - binding.banner.setAdapter(new BannerImageAdapter(BannerBean.getTestData()) { - @Override - public void onBindView(BannerImageHolder holder, BannerBean data, int position, int size) { - Log.d("fullshow", "load" + data.imageRes); - Glide.with(holder.itemView) - .load(data.imageRes) - .into(holder.imageView); - } - }) - .addBannerLifecycleObserver(this)//添加生命周期观察者 - .setIndicator(new CircleIndicator(this)) - .setLoopTime(5000); - } - - @Override - public boolean dispatchTouchEvent(MotionEvent ev) { - int h = ScreenUtils.getScreenHeight(); - - if(ev.getActionMasked() == MotionEvent.ACTION_DOWN && ev.getX() < 100 && ev.getY() > h-100) - finishByHits(); - return super.dispatchTouchEvent(ev); - } - - public void finishByHits() { - //每次点击时,数组向前移动一位 - System.arraycopy(CON_Hits, 1, CON_Hits, 0, CON_Hits.length - 1); - //为数组最后一位赋值 - CON_Hits[CON_Hits.length - 1] = SystemClock.uptimeMillis(); - if (CON_Hits[0] >= (SystemClock.uptimeMillis() - CON_DURATION)) { - CON_Hits = new long[CON_COUNTS];//重新初始化数组 - - finish(); - } - } -} \ No newline at end of file diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/StartActivity.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/StartActivity.java index 0e689fb..c128722 100644 --- a/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/StartActivity.java +++ b/app_dashboard/src/main/java/cn/ykbox/dashboard/activity/StartActivity.java @@ -5,34 +5,29 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; -import androidx.activity.EdgeToEdge; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.graphics.Insets; -import androidx.core.view.ViewCompat; -import androidx.core.view.WindowInsetsCompat; +import cn.ykbox.dashboard.databinding.ActivityDashboardBinding; +import cn.ykbox.dashboard.databinding.ActivityStartBinding; import cn.ykbox.dashboard.R; -public class StartActivity extends AppCompatActivity { +public class StartActivity extends FullscreenActivity { private Context mContext; + private ActivityStartBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { + binding = ActivityStartBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + super.setViews(binding.flContent, null); super.onCreate(savedInstanceState); mContext = this; - EdgeToEdge.enable(this); - setContentView(R.layout.activity_start); - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { - Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); - return insets; - }); new Handler().postDelayed(new Runnable() { @Override public void run() { - Intent myIntent = new Intent(mContext, BuildingDashboardActivity.class); + Intent myIntent = new Intent(mContext, DashboardActivity.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(myIntent); diff --git a/app_dashboard/src/main/java/cn/ykbox/dashboard/data/BannerBean.java b/app_dashboard/src/main/java/cn/ykbox/dashboard/data/BannerBean.java deleted file mode 100644 index 39cdd3f..0000000 --- a/app_dashboard/src/main/java/cn/ykbox/dashboard/data/BannerBean.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.ykbox.dashboard.data; - -import java.util.ArrayList; -import java.util.List; - -import cn.ykbox.dashboard.R; - -public class BannerBean { - public Integer imageRes; - public String imageUrl; - public String title; - public int viewType; - - public BannerBean(Integer imageRes, String title, int viewType) { - this.imageRes = imageRes; - this.title = title; - this.viewType = viewType; - } - - public BannerBean(String imageUrl, String title, int viewType) { - this.imageUrl = imageUrl; - this.title = title; - this.viewType = viewType; - } - - public static List getTestData() { - List list = new ArrayList<>(); - list.add(new BannerBean(R.drawable.image1, "第3代无线智能中控", 1)); - list.add(new BannerBean(R.drawable.image2, "智慧班牌", 3)); - list.add(new BannerBean(R.drawable.image3, "无线话筒", 3)); - list.add(new BannerBean(R.drawable.image4, "可移动式智能讲桌", 1)); - list.add(new BannerBean(R.drawable.image5, "TD2+智慧屏集成讲桌", 1)); - list.add(new BannerBean(R.drawable.image6, "TD5+智慧屏集成讲台", 3)); - return list; - } -} diff --git a/app_dashboard/src/main/res/drawable/image1.jpg b/app_dashboard/src/main/res/drawable/image1.jpg deleted file mode 100644 index 53e92ac..0000000 Binary files a/app_dashboard/src/main/res/drawable/image1.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/image2.jpg b/app_dashboard/src/main/res/drawable/image2.jpg deleted file mode 100644 index d0d0d8c..0000000 Binary files a/app_dashboard/src/main/res/drawable/image2.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/image3.jpg b/app_dashboard/src/main/res/drawable/image3.jpg deleted file mode 100644 index 0ead079..0000000 Binary files a/app_dashboard/src/main/res/drawable/image3.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/image4.jpg b/app_dashboard/src/main/res/drawable/image4.jpg deleted file mode 100644 index c322649..0000000 Binary files a/app_dashboard/src/main/res/drawable/image4.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/image5.jpg b/app_dashboard/src/main/res/drawable/image5.jpg deleted file mode 100644 index 824a794..0000000 Binary files a/app_dashboard/src/main/res/drawable/image5.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/image6.jpg b/app_dashboard/src/main/res/drawable/image6.jpg deleted file mode 100644 index 536af41..0000000 Binary files a/app_dashboard/src/main/res/drawable/image6.jpg and /dev/null differ diff --git a/app_dashboard/src/main/res/drawable/splash.png b/app_dashboard/src/main/res/drawable/splash.png new file mode 100644 index 0000000..a2163fd Binary files /dev/null and b/app_dashboard/src/main/res/drawable/splash.png differ diff --git a/app_dashboard/src/main/res/layout/activity_building_dashboard.xml b/app_dashboard/src/main/res/layout/activity_dashboard.xml similarity index 97% rename from app_dashboard/src/main/res/layout/activity_building_dashboard.xml rename to app_dashboard/src/main/res/layout/activity_dashboard.xml index 7d938e9..2d69cbe 100644 --- a/app_dashboard/src/main/res/layout/activity_building_dashboard.xml +++ b/app_dashboard/src/main/res/layout/activity_dashboard.xml @@ -5,7 +5,7 @@ android:layout_height="match_parent" android:background="?attr/fullscreenBackgroundColor" android:theme="@style/ThemeOverlay.DashBoardClient.FullscreenContainer" - tools:context=".BuildingDashboardActivity"> + tools:context=".activity.DashboardActivity">