From 2216a4b9528d771fb9869f3b6b1772b62fc94a39 Mon Sep 17 00:00:00 2001 From: Iscle Date: Sun, 30 May 2021 02:35:32 +0200 Subject: [PATCH] Replaced handler with runOnUiThread, misc improvements Signed-off-by: Iscle --- .../mcinabox/activity/OldMainActivity.java | 33 +++++++------------ .../aof/mcinabox/activity/SplashActivity.java | 14 +++++--- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/aof/mcinabox/activity/OldMainActivity.java b/app/src/main/java/com/aof/mcinabox/activity/OldMainActivity.java index 9c1259fb..7dbdfd3e 100644 --- a/app/src/main/java/com/aof/mcinabox/activity/OldMainActivity.java +++ b/app/src/main/java/com/aof/mcinabox/activity/OldMainActivity.java @@ -1,16 +1,13 @@ package com.aof.mcinabox.activity; -import android.annotation.SuppressLint; import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; -import android.os.Handler; -import android.os.Message; import android.util.Log; import android.view.KeyEvent; -import com.aof.mcinabox.R; +import com.aof.mcinabox.databinding.ActivityOldMainBinding; import com.aof.mcinabox.gamecontroller.definitions.manifest.AppManifest; import com.aof.mcinabox.launcher.lang.LangManager; import com.aof.mcinabox.launcher.setting.SettingManager; @@ -28,6 +25,7 @@ import java.util.TimerTask; public class OldMainActivity extends BaseActivity { + private static final String TAG = "MainActivity"; public static final int LAUNCHER_IMPT_RTPACK = 127; public static WeakReference CURRENT_ACTIVITY; @@ -36,16 +34,17 @@ public class OldMainActivity extends BaseActivity { public TipperManager mTipperManager; public SettingManager mSettingManager; public ThemeManager mThemeManager; + private ActivityOldMainBinding binding; private static final int REFRESH_DELAY = 0; //ms private static final int REFRESH_PERIOD = 500; //ms - private static final String TAG = "MainActivity"; public static SettingJson Setting; private boolean enableSettingChecker = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_old_main); + binding = ActivityOldMainBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); //静态对象 CURRENT_ACTIVITY = new WeakReference<>(this); //使用语言管理器切换语言 @@ -75,7 +74,7 @@ protected void onCreate(Bundle savedInstanceState) { getWindow().setNavigationBarColor(Color.WHITE); } - findViewById(R.id.toolbar_button_new_ui).setOnClickListener(v -> { + binding.layoutToolbarMain.toolbarButtonNewUi.setOnClickListener(v -> { Intent i = new Intent(OldMainActivity.this, MainActivity.class); startActivity(i); }); @@ -156,18 +155,6 @@ public void refreshLauncher() { mUiManager.refreshUis(); } - @SuppressLint("HandlerLeak") - public Handler handler = new Handler() { - public void handleMessage(Message msg) { - if (msg.what == 1) { - Log.e("mcinabox", "Updata Setting."); - refreshLauncher(); - updateSettingFromUis(); - } - super.handleMessage(msg); - } - }; - /** * 【给Minecraft目录设置无媒体标签】 **/ @@ -219,9 +206,11 @@ private TimerTask createRefreshTimerTask() { return new TimerTask() { @Override public void run() { - Message msg = new Message(); - msg.what = 1; - handler.sendMessage(msg); + runOnUiThread(() -> { + Log.d(TAG, "run: Updating settings."); + refreshLauncher(); + updateSettingFromUis(); + }); } }; } diff --git a/app/src/main/java/com/aof/mcinabox/activity/SplashActivity.java b/app/src/main/java/com/aof/mcinabox/activity/SplashActivity.java index db4f68a9..74880456 100644 --- a/app/src/main/java/com/aof/mcinabox/activity/SplashActivity.java +++ b/app/src/main/java/com/aof/mcinabox/activity/SplashActivity.java @@ -1,6 +1,7 @@ package com.aof.mcinabox.activity; import android.Manifest; +import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; @@ -9,6 +10,8 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import com.aof.mcinabox.R; + import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class SplashActivity extends BaseActivity { @@ -32,8 +35,7 @@ protected void onCreate(Bundle savedInstanceState) { } private void startApp() { - Intent i = new Intent(this, OldMainActivity.class); - startActivity(i); + startActivity(new Intent(this, OldMainActivity.class)); finishAffinity(); } @@ -51,8 +53,12 @@ private boolean checkPermissions() { } private void handleInitFailed() { - Toast.makeText(this, "Oops! Something went wrong while starting the app.", Toast.LENGTH_SHORT).show(); - finishAffinity(); + new AlertDialog.Builder(this) + .setTitle(R.string.error) + .setMessage(R.string.error_starting_the_app) + .setCancelable(false) + .setPositiveButton("Exit", (dialog, which) -> finishAffinity()) + .show(); } @Override diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b5670c63..3c617076 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -328,5 +328,7 @@ Enter T + Enter Done + Error + Something went wrong while starting the app. Try again later.