mirror of
https://github.com/FatttSnake/OxygenToolbox.git
synced 2026-04-06 02:21:26 +08:00
102 lines
4.3 KiB
Java
102 lines
4.3 KiB
Java
package com.fatapp.oxygentoolbox;
|
|
|
|
import android.content.Intent;
|
|
import android.content.pm.ShortcutInfo;
|
|
import android.content.pm.ShortcutManager;
|
|
import android.graphics.drawable.Icon;
|
|
import android.os.Bundle;
|
|
import android.view.MenuItem;
|
|
import android.view.View;
|
|
import android.view.Menu;
|
|
|
|
import com.fatapp.oxygentoolbox.layout.FoldLayout;
|
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|
import com.google.android.material.snackbar.Snackbar;
|
|
import com.google.android.material.navigation.NavigationView;
|
|
|
|
import androidx.navigation.NavController;
|
|
import androidx.navigation.Navigation;
|
|
import androidx.navigation.ui.AppBarConfiguration;
|
|
import androidx.navigation.ui.NavigationUI;
|
|
import androidx.drawerlayout.widget.DrawerLayout;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.appcompat.widget.Toolbar;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
private AppBarConfiguration mAppBarConfiguration;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
|
setSupportActionBar(toolbar);
|
|
FloatingActionButton fab = findViewById(R.id.fab);
|
|
fab.setOnClickListener(view -> {
|
|
/*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
|
|
.setAction("Action", null).show();*/
|
|
});
|
|
DrawerLayout drawer = findViewById(R.id.drawer_layout);
|
|
NavigationView navigationView = findViewById(R.id.nav_view);
|
|
navigationView.inflateHeaderView(R.layout.nav_header_main);
|
|
navigationView.inflateMenu(R.menu.activity_main_drawer);
|
|
navigationView.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
|
|
if (navigationView.getMenu().getItem(0).isChecked()) {
|
|
fab.setVisibility(View.VISIBLE);
|
|
} else {
|
|
fab.setVisibility(View.GONE);
|
|
}
|
|
});
|
|
// Passing each menu ID as a set of Ids because each
|
|
// menu should be considered as top level destinations.
|
|
mAppBarConfiguration = new AppBarConfiguration.Builder(R.id.nav_home)
|
|
.setDrawerLayout(drawer)
|
|
.build();
|
|
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
|
|
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
|
|
NavigationUI.setupWithNavController(navigationView, navController);
|
|
|
|
shortCutCreateTest();
|
|
}
|
|
|
|
private void shortCutCreateTest() {
|
|
|
|
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N_MR1) {
|
|
return;
|
|
}
|
|
Intent intent = new Intent();
|
|
intent.setAction("android.intent.action.VIEW");
|
|
intent.setClassName("com.fatapp.oxygentoolbox",
|
|
"com.fatapp.oxygentoolbox.MainActivity");
|
|
ShortcutInfo.Builder builder;
|
|
builder = new ShortcutInfo.Builder(this, "dynamic shortcut")
|
|
.setIntent(new Intent()
|
|
.setAction("android.intent.action.VIEW")
|
|
.setClassName("com.fatapp.oxygentoolbox", "com.fatapp.oxygentoolbox.MainActivity"))
|
|
.setShortLabel("This is a dynamic shortcut")
|
|
.setLongLabel("This is a dynamic shortcut with long label")
|
|
.setIcon(Icon.createWithResource(this, R.drawable.ic_menu_home));
|
|
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
|
|
shortcutManager.addDynamicShortcuts(Collections.singletonList(builder.build()));
|
|
}
|
|
|
|
@Override
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
// Inflate the menu; this adds items to the action bar if it is present.
|
|
getMenuInflater().inflate(R.menu.main, menu);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onSupportNavigateUp() {
|
|
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
|
|
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|
|
|| super.onSupportNavigateUp();
|
|
}
|
|
} |