mirror of
https://github.com/FatttSnake/OxygenToolbox.git
synced 2026-04-06 08:21:27 +08:00
Optimized NavigationView, the way to exit.
Add vibration and shadow to tool buttons.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user