From b2f7ccb29d34c85eae93df5590ce290b1c8de105 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Sun, 3 Apr 2022 01:17:47 +0800 Subject: [PATCH] Optimized NavigationView, the way to exit. Add vibration and shadow to tool buttons. --- .idea/deploymentTargetDropDown.xml | 37 +++++++++++++++++++ app/src/main/AndroidManifest.xml | 3 +- .../fatapp/oxygentoolbox/MainActivity.java | 8 +++- .../oxygentoolbox/ui/home/HomeFragment.java | 22 +++++++++++ .../util/VibratorController.java | 32 ++++++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 2 +- .../main/res/menu/activity_main_drawer.xml | 2 + 7 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 .idea/deploymentTargetDropDown.xml create mode 100644 app/src/main/java/com/fatapp/oxygentoolbox/util/VibratorController.java diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..17b3b8b --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 99f9dff..32e948b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + - \ No newline at end of file diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/MainActivity.java b/app/src/main/java/com/fatapp/oxygentoolbox/MainActivity.java index 893b2ce..3dcc10c 100644 --- a/app/src/main/java/com/fatapp/oxygentoolbox/MainActivity.java +++ b/app/src/main/java/com/fatapp/oxygentoolbox/MainActivity.java @@ -5,6 +5,7 @@ import android.view.View; import android.view.Menu; import com.fatapp.oxygentoolbox.util.ResourceUtil; +import com.fatapp.oxygentoolbox.util.VibratorController; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.navigation.NavigationView; @@ -35,7 +36,6 @@ public class MainActivity extends AppCompatActivity { drawer = findViewById(R.id.drawer_layout); navigationView = findViewById(R.id.nav_view); mainActivity = this; - ResourceUtil.init(getApplication()); } @Override @@ -46,6 +46,8 @@ public class MainActivity extends AppCompatActivity { //init initView(); initLayout(); + ResourceUtil.init(getApplication()); + VibratorController.init(); // shortCutCreateTest(); } @@ -60,10 +62,12 @@ public class MainActivity extends AppCompatActivity { navigationView.inflateMenu(R.menu.activity_main_drawer); navigationView.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { if (navigationView.getMenu().getItem(0).isChecked()) { + drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); fab.setVisibility(View.VISIBLE); } else if (navigationView.getMenu().getItem(4).isChecked()) { - System.exit(0); + finish(); } else { + drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); fab.setVisibility(View.GONE); } }); diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/HomeFragment.java b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/HomeFragment.java index a98675f..ca64301 100644 --- a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/HomeFragment.java +++ b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/HomeFragment.java @@ -1,8 +1,10 @@ package com.fatapp.oxygentoolbox.ui.home; +import android.annotation.SuppressLint; import android.graphics.Typeface; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -18,6 +20,7 @@ import com.fatapp.oxygentoolbox.R; import com.fatapp.oxygentoolbox.layout.FoldLayout; import com.fatapp.oxygentoolbox.util.ToolsLauncher; import com.fatapp.oxygentoolbox.util.ToolsList; +import com.fatapp.oxygentoolbox.util.VibratorController; import java.io.IOException; import java.util.ArrayList; @@ -51,6 +54,7 @@ public class HomeFragment extends Fragment { initFoldLayout(); } + @SuppressLint("ClickableViewAccessibility") private void initFoldLayout() { try { ToolsList.init(getResources().getAssets().open("json/BasicTools.json")); @@ -68,7 +72,25 @@ public class HomeFragment extends Fragment { View toolButtonLayout = getLayoutInflater().inflate(R.layout.tool_button, null); Button toolButton = toolButtonLayout.findViewById(R.id.tool_button); toolButton.setText(button.getText()); + toolButton.setOnClickListener(v -> ToolsLauncher.launch(getContext(), button.getActivity())); + + toolButton.setOnTouchListener((v, event) -> { + if (event.getAction()== MotionEvent.ACTION_DOWN) { + v.animate().translationZ(8f).setDuration(100L); + } + if (event.getAction() == MotionEvent.ACTION_UP) { + v.animate().translationZ(0).setDuration(100L); + } + return false; + }); + + toolButton.setOnLongClickListener(v -> { + v.animate().translationZ(0).setDuration(100L); + VibratorController.vibrate(1); + return false; + }); + autoLinefeedLayout.addView(toolButtonLayout); } diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/VibratorController.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/VibratorController.java new file mode 100644 index 0000000..b620a9f --- /dev/null +++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/VibratorController.java @@ -0,0 +1,32 @@ +package com.fatapp.oxygentoolbox.util; + +import android.app.Service; +import android.os.Vibrator; + +public class VibratorController { + private static boolean hasVib; + private static Vibrator sVib; + + public static void init() { + sVib = (Vibrator) ResourceUtil.getApplication().getSystemService(Service.VIBRATOR_SERVICE); + hasVib = sVib.hasVibrator(); + } + + public static void vibrate(long milliseconds) { + if (hasVib) { + sVib.vibrate(milliseconds); + } + } + + public static void vibrate(long[] pattern,int repeat){ + if (hasVib) { + sVib.vibrate(pattern,repeat); + } + } + + public static void cancel(){ + if (hasVib) { + sVib.cancel(); + } + } +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index 0ee4f6a..b52f40d 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -23,7 +23,7 @@ + +