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 @@
+
+