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(); } }