Java Code Examples for android.content.pm.ShortcutManager#setDynamicShortcuts()

The following examples show how to use android.content.pm.ShortcutManager#setDynamicShortcuts() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MainActivity.java    From SecondScreen with Apache License 2.0 6 votes vote down vote up
private void setLauncherShortcuts() {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
        ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

        if(shortcutManager.getDynamicShortcuts().size() == 0) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setClassName(BuildConfig.APPLICATION_ID, TaskerQuickActionsActivity.class.getName());
            intent.putExtra("launched-from-app", true);

            ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "quick_actions")
                    .setShortLabel(getString(R.string.label_quick_actions))
                    .setIcon(Icon.createWithResource(this, R.drawable.shortcut_icon))
                    .setIntent(intent)
                    .build();

            shortcutManager.setDynamicShortcuts(Collections.singletonList(shortcut));
        }
    }
}
 
Example 2
Source File: MainActivity.java    From Wrox-ProfessionalAndroid-4E with Apache License 2.0 6 votes vote down vote up
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
private void listing19_28(String destination) {
  // Listing 19-28: Creating and adding dynamic App Shortcuts
  ShortcutManager shortcutManager = (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);

  Intent navIntent = new Intent(this, MainActivity.class);
  navIntent.setAction(Intent.ACTION_VIEW);
  navIntent.putExtra(DESTINATION_EXTRA, destination);

  String id = "dynamicDest" + destination;
  ShortcutInfo shortcut =
    new ShortcutInfo.Builder(this, id)
      .setShortLabel(destination)
      .setLongLabel("Navigate to " + destination)
      .setDisabledMessage("Navigation Shortcut Disabled")
      .setIcon(Icon.createWithResource(this, R.mipmap.ic_launcher))
      .setIntent(navIntent)
      .build();

  shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
}
 
Example 3
Source File: DynamicShortcutManager.java    From volume_control_android with MIT License 6 votes vote down vote up
public static void setShortcuts(Activity activity, SoundProfile[] soundProfiles) {
    final List<ShortcutInfo> shortcutInfos = new ArrayList<>();
    for (SoundProfile soundProfile : soundProfiles) {
        if (!soundProfile.name.isEmpty()) {
            shortcutInfos.add(createShortcutInfo(activity, soundProfile));
        }
    }
    ShortcutManager shortcutManager = activity.getSystemService(ShortcutManager.class);
    if (shortcutManager.getMaxShortcutCountPerActivity() < shortcutInfos.size()) {
        int last = shortcutInfos.size() - 1;
        int first = last - shortcutManager.getMaxShortcutCountPerActivity();
        shortcutManager.setDynamicShortcuts(shortcutInfos.subList(first, last));
    } else {
        shortcutManager.setDynamicShortcuts(shortcutInfos);
    }

}
 
Example 4
Source File: Helper.java    From AppOpsX with MIT License 6 votes vote down vote up
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
private static void updataShortcuts(Context context, List<AppInfo> items) {
  ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
  List<ShortcutInfo> shortcutInfoList = new ArrayList<>();
  int max = shortcutManager.getMaxShortcutCountPerActivity();
  for (int i = 0; i < max && i < items.size(); i++) {
    AppInfo appInfo = items.get(i);
    ShortcutInfo.Builder shortcut = new ShortcutInfo.Builder(context, appInfo.packageName);
    shortcut.setShortLabel(appInfo.appName);
    shortcut.setLongLabel(appInfo.appName);

    shortcut.setIcon(
        Icon.createWithBitmap(drawableToBitmap(LocalImageLoader.getDrawable(context, appInfo))));

    Intent intent = new Intent(context, AppPermissionActivity.class);
    intent.putExtra(AppPermissionActivity.EXTRA_APP_PKGNAME, appInfo.packageName);
    intent.putExtra(AppPermissionActivity.EXTRA_APP_NAME, appInfo.appName);
    intent.setAction(Intent.ACTION_DEFAULT);
    shortcut.setIntent(intent);

    shortcutInfoList.add(shortcut.build());
  }
  shortcutManager.setDynamicShortcuts(shortcutInfoList);
}
 
Example 5
Source File: AegisApplication.java    From Aegis with GNU General Public License v3.0 6 votes vote down vote up
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
private void initAppShortcuts() {
    ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
    if (shortcutManager == null) {
        return;
    }

    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("action", "scan");
    intent.setAction(Intent.ACTION_MAIN);

    ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "shortcut_new")
            .setShortLabel(getString(R.string.new_entry))
            .setLongLabel(getString(R.string.add_new_entry))
            .setIcon(Icon.createWithResource(this, R.drawable.ic_qr_code))
            .setIntent(intent)
            .build();

    shortcutManager.setDynamicShortcuts(Collections.singletonList(shortcut));
}
 
Example 6
Source File: NavigationActivity.java    From KernelAdiutor with GNU General Public License v3.0 5 votes vote down vote up
private void setShortcuts() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) return;

    PriorityQueue<Class<? extends Fragment>> queue = new PriorityQueue<>(
            (o1, o2) -> {
                int opened1 = AppSettings.getFragmentOpened(o1, this);
                int opened2 = AppSettings.getFragmentOpened(o2, this);
                return opened2 - opened1;
            });

    for (Map.Entry<Integer, Class<? extends Fragment>> entry : mActualFragments.entrySet()) {
        Class<? extends Fragment> fragmentClass = entry.getValue();
        if (fragmentClass == null || fragmentClass == SettingsFragment.class) continue;

        queue.offer(fragmentClass);
    }

    List<ShortcutInfo> shortcutInfos = new ArrayList<>();
    ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
    shortcutManager.removeAllDynamicShortcuts();
    for (int i = 0; i < 4; i++) {
        NavigationFragment fragment = findNavigationFragmentByClass(queue.poll());
        if (fragment == null || fragment.mFragmentClass == null) continue;
        Intent intent = new Intent(this, MainActivity.class);
        intent.setAction(Intent.ACTION_VIEW);
        intent.putExtra(INTENT_SECTION, fragment.mFragmentClass.getCanonicalName());
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

        ShortcutInfo shortcut = new ShortcutInfo.Builder(this,
                fragment.mFragmentClass.getSimpleName())
                .setShortLabel(getString(fragment.mId))
                .setLongLabel(Utils.strFormat(getString(R.string.open), getString(fragment.mId)))
                .setIcon(Icon.createWithResource(this, fragment.mDrawable == 0 ?
                        R.drawable.ic_blank : fragment.mDrawable))
                .setIntent(intent)
                .build();
        shortcutInfos.add(shortcut);
    }
    shortcutManager.setDynamicShortcuts(shortcutInfos);
}
 
Example 7
Source File: App.java    From hash-checker with Apache License 2.0 5 votes vote down vote up
private void createShortcuts() {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
        if (shortcutManager != null) {
            shortcutManager.setDynamicShortcuts(
                    Arrays.asList(
                            getShortcutForTextType(),
                            getShortcutForFileType()
                    )
            );
        }
    }
}
 
Example 8
Source File: ShortcutHelper.java    From Hentoid with Apache License 2.0 5 votes vote down vote up
public static void buildShortcuts(Context context) {
    // TODO: Loop across all activities
    List<ShortcutInfo> shortcuts = new ArrayList<>();
    shortcuts.add(buildShortcut(context, Site.NHENTAI));

    ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
    if (shortcutManager != null)
        shortcutManager.setDynamicShortcuts(shortcuts);
}
 
Example 9
Source File: ShortCut7_0Activity.java    From Study_Android_Demo with Apache License 2.0 5 votes vote down vote up
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
private void createShortCut() {
        //获取系统服务得到ShortcutManager对象 (若考虑兼容性可用ShortcutManagerCompat)
    ShortcutManager  systemService = getSystemService(ShortcutManager.class);

        if (Build.VERSION.SDK_INT >= 25) {

            //设置Intent跳转逻辑
            Intent intent = new Intent(ShortCut7_0Activity.this, ShortCutActvivity.class);
            intent.setAction(Intent.ACTION_VIEW);

            //设置ID
            ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, "onlyId")
                    //设置短标题
                    .setShortLabel("雅蠛蝶")
                    //设置长标题
                    .setLongLabel("江山留胜迹")
                    //设置icon
                    .setIcon(Icon.createWithResource(this, R.mipmap.momo))
                    //设置Intent
                    .setIntent(intent)
                    .build();
            //这样就可以通过长按图标显示出快捷方式了
            systemService.setDynamicShortcuts(Arrays.asList(shortcutInfo));
    }


}
 
Example 10
Source File: LoginActivity.java    From faveo-helpdesk-android-app with Open Software License 3.0 5 votes vote down vote up
/**
 * This method is for getting the short cut if we are
 * holding the icon for long time.
 */
@RequiresApi(api = Build.VERSION_CODES.N_MR1)
void dynamicShortcut() {
    ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

    ShortcutInfo webShortcut = new ShortcutInfo.Builder(this, "Web app")
            .setShortLabel("Web App")
            .setLongLabel("Open the web app")
            .setIcon(Icon.createWithResource(this, R.drawable.add))
            .setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(editTextCompanyURL.getText().toString())))
            .build();

    shortcutManager.setDynamicShortcuts(Collections.singletonList(webShortcut));
}
 
Example 11
Source File: App.java    From FastLib with Apache License 2.0 5 votes vote down vote up
private void setShortcut() {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {
        ShortcutManager shortcutManager = mContext.getSystemService(ShortcutManager.class);
        List<ShortcutInfo> list = new ArrayList<>();
        ShortcutInfo shortGit;
        ShortcutInfo shortBlog;
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.jianshu.com/u/a229eee96115"));
        intent.setClassName(getPackageName(), MainActivity.class.getName());
        intent.putExtra("url", "https://www.jianshu.com/u/a229eee96115");

        Intent intentGit = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/AriesHoo"));
        intentGit.setClassName(getPackageName(), MainActivity.class.getName());
        intentGit.putExtra("url", "https://github.com/AriesHoo");


        shortGit = new ShortcutInfo.Builder(this, "github")
                .setShortLabel("GitHub")
                .setLongLabel("GitHub-AriesHoo")
                .setIcon(Icon.createWithResource(mContext, R.drawable.ic_github))
                .setIntent(intentGit)
                .build();
        shortBlog = new ShortcutInfo.Builder(this, "jianshu")
                .setShortLabel("简书")
                .setLongLabel("简书-AriesHoo")
                .setIcon(Icon.createWithResource(mContext, R.drawable.ic_book))
                .setIntent(intent)
                .build();
        list.add(shortGit);
        list.add(shortBlog);
        shortcutManager.setDynamicShortcuts(list);
    }
}
 
Example 12
Source File: ShortcutsPlugin.java    From cordova-plugin-shortcuts-android with MIT License 5 votes vote down vote up
private void setDynamicShortcuts(
    JSONArray args) throws PackageManager.NameNotFoundException, JSONException {
        int count = args.length();
        ArrayList<ShortcutInfo> shortcuts = new ArrayList<ShortcutInfo>(count);

        for (int i = 0; i < count; ++i) {
            shortcuts.add(buildDynamicShortcut(args.optJSONObject(i)));
        }

        Context context = this.cordova.getActivity().getApplicationContext();
        ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
        shortcutManager.setDynamicShortcuts(shortcuts);

        Log.i(TAG, String.format("Saved % dynamic shortcuts.", count));
}
 
Example 13
Source File: MainActivity.java    From shortrain with MIT License 5 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

    shortcutManager.removeAllDynamicShortcuts();
    int newWallId = ShortcutsUtils.getNextRailNumber(shortcutManager);
    ShortcutInfo ballShortcut = ShortcutsUtils.createTrainShortcut(this);
    ShortcutInfo wallShortcut = ShortcutsUtils.createRailShortcut(this, newWallId);
    shortcutManager.setDynamicShortcuts(Arrays.asList(ballShortcut, wallShortcut));

    setContentView(R.layout.activity_main);

    rootView = findViewById(R.id.activity_main_root);

    viewPager = (ViewPager) findViewById(R.id.activity_main_view_pager);
    pagerAdapter = new TutorialViewPagerAdapter(getFragmentManager());
    viewPager.setAdapter(pagerAdapter);
    rootView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finishActivity();
        }
    });
}
 
Example 14
Source File: NavigationActivity.java    From MTweaks-KernelAdiutorMOD with GNU General Public License v3.0 5 votes vote down vote up
private void setShortcuts() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) return;

    PriorityQueue<Class<? extends Fragment>> queue = new PriorityQueue<>(
            (o1, o2) -> {
                int opened1 = AppSettings.getFragmentOpened(o1, this);
                int opened2 = AppSettings.getFragmentOpened(o2, this);
                return opened2 - opened1;
            });

    for (Map.Entry<Integer, Class<? extends Fragment>> entry : mActualFragments.entrySet()) {
        Class<? extends Fragment> fragmentClass = entry.getValue();
        if (fragmentClass == null || fragmentClass == SettingsFragment.class) continue;

        queue.offer(fragmentClass);
    }

    List<ShortcutInfo> shortcutInfos = new ArrayList<>();
    ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
    shortcutManager.removeAllDynamicShortcuts();
    for (int i = 0; i < 4; i++) {
        NavigationFragment fragment = findNavigationFragmentByClass(queue.poll());
        if (fragment == null || fragment.mFragmentClass == null) continue;
        Intent intent = new Intent(this, MainActivity.class);
        intent.setAction(Intent.ACTION_VIEW);
        intent.putExtra(INTENT_SECTION, fragment.mFragmentClass.getCanonicalName());
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

        ShortcutInfo shortcut = new ShortcutInfo.Builder(this,
                fragment.mFragmentClass.getSimpleName())
                .setShortLabel(getString(fragment.mId))
                .setLongLabel(Utils.strFormat(getString(R.string.open), getString(fragment.mId)))
                .setIcon(Icon.createWithResource(this, fragment.mDrawable == 0 ?
                        R.drawable.ic_blank : fragment.mDrawable))
                .setIntent(intent)
                .build();
        shortcutInfos.add(shortcut);
    }
    shortcutManager.setDynamicShortcuts(shortcutInfos);
}
 
Example 15
Source File: MainActivity.java    From Metronome-Android with Apache License 2.0 5 votes vote down vote up
private void saveBookmarks() {
    SharedPreferences.Editor editor = prefs.edit();
    for (int i = 0; i < bookmarks.size(); i++) {
        editor.putInt(PREF_BOOKMARK + i, bookmarks.get(i));
    }
    editor.putInt(PREF_BOOKMARKS_LENGTH, bookmarks.size());
    editor.apply();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
        Collections.sort(bookmarks);
        ShortcutManager manager = (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);
        if (manager != null) {
            List<ShortcutInfo> shortcuts = new ArrayList<>();
            for (int bpm : bookmarks) {
                shortcuts.add(
                        new ShortcutInfo.Builder(this, String.valueOf(bpm))
                                .setShortLabel(getString(R.string.bpm, String.valueOf(bpm)))
                                .setIcon(Icon.createWithResource(this, R.drawable.ic_note))
                                .setIntent(getBookmarkIntent(bpm))
                                .build()
                );
            }

            manager.setDynamicShortcuts(shortcuts);
        }
    }

    updateBookmarks(true);
}
 
Example 16
Source File: SqrlApplication.java    From secure-quick-reliable-login with MIT License 5 votes vote down vote up
public static void setApplicationShortcuts(Context context) {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        SQRLStorage sqrlStorage = SQRLStorage.getInstance(context);
        if (getCurrentId(context) > 0) {
            ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
            if (sqrlStorage.hasQuickPass()) {
                shortcutManager.setDynamicShortcuts(Arrays.asList(scanShortcut, clearQuickPassShortcut));
            } else {
                shortcutManager.setDynamicShortcuts(Arrays.asList(scanShortcut, logonShortcut));
            }
        }
    }
}
 
Example 17
Source File: MainActivity.java    From android-wallet-app with GNU General Public License v3.0 4 votes vote down vote up
private void updateDynamicShortcuts() {
    ShortcutManager shortcutManager;

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {

        Intent intentGenerateQrCode = new Intent(this, MainActivity.class);
        intentGenerateQrCode.setFlags((Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));
        intentGenerateQrCode.setAction(Constants.ACTION_GENERATE_QR_CODE);

        ShortcutInfo shortcutGenerateQrCode = new ShortcutInfo.Builder(this, SHORTCUT_ID_GENERATE_QR_CODE)
                .setShortLabel(getString(R.string.shortcut_generate_qr_code))
                .setLongLabel(getString(R.string.shortcut_generate_qr_code))
                .setIcon(Icon.createWithResource(this, R.drawable.ic_shortcut_qr))
                .setIntent(intentGenerateQrCode)
                .build();

        Intent intentTransferIotas = new Intent(this, MainActivity.class);
        intentTransferIotas.setFlags((Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));
        intentTransferIotas.setAction(Constants.ACTION_SEND_TRANSFER);

        ShortcutInfo shortcutTransferIotas = new ShortcutInfo.Builder(this, SHORTCUT_ID_SEND_TRANSFER)
                .setShortLabel(getString(R.string.shortcut_send_transfer))
                .setLongLabel(getString(R.string.shortcut_send_transfer))
                .setIcon(Icon.createWithResource(this, R.drawable.ic_shortcut_transaction))
                .setIntent(intentTransferIotas)
                .build();

        shortcutManager = getSystemService(ShortcutManager.class);

        if (shortcutManager != null) {
            if (IOTA.seed != null) {
                shortcutManager.setDynamicShortcuts(Arrays.asList(shortcutGenerateQrCode, shortcutTransferIotas));
                shortcutManager.enableShortcuts(Arrays.asList(SHORTCUT_ID_GENERATE_QR_CODE, SHORTCUT_ID_SEND_TRANSFER));
            } else {
                // remove shortcuts if Iota.seed.isEmpty()
                shortcutManager.disableShortcuts(Arrays.asList(SHORTCUT_ID_GENERATE_QR_CODE, SHORTCUT_ID_SEND_TRANSFER));
                shortcutManager.removeAllDynamicShortcuts();
            }
        }
    }
}
 
Example 18
Source File: AppShortcutsHelper.java    From rcloneExplorer with MIT License 4 votes vote down vote up
public static void populateAppShortcuts(Context context, List<RemoteItem> remotes) {
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N_MR1) {
        return;
    }

    ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
    if (shortcutManager == null) {
        return;
    }

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = sharedPreferences.edit();

    Set<String> shortcutSet = new HashSet<>();
    List<ShortcutInfo> shortcutInfoList = new ArrayList<>();

    for (RemoteItem remoteItem : remotes) {
        String id = getUniqueIdFromString(remoteItem.getName());

        Intent intent = new Intent(Intent.ACTION_MAIN, Uri.EMPTY, context, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        intent.putExtra(APP_SHORTCUT_REMOTE_NAME, remoteItem.getName());

        ShortcutInfo shortcut = new ShortcutInfo.Builder(context, id)
                .setShortLabel(remoteItem.getName())
                .setIcon(Icon.createWithResource(context, AppShortcutsHelper.getRemoteIcon(remoteItem.getType(), remoteItem.isCrypt())))
                .setIntent(intent)
                .build();

        shortcutInfoList.add(shortcut);
        shortcutSet.add(id);

        if (shortcutInfoList.size() >= 4) {
            break;
        }
    }

    shortcutManager.setDynamicShortcuts(shortcutInfoList);
    editor.putStringSet(context.getString(R.string.shared_preferences_app_shortcuts), shortcutSet);
    editor.apply();
}
 
Example 19
Source File: MainActivity.java    From journaldev with MIT License 3 votes vote down vote up
private void createSimpleDynamicShortcut() {



        ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

        Intent intent1 = new Intent(getApplicationContext(), MainActivity.class);
        intent1.setAction(ACTION_KEY);

        ShortcutInfo shortcut1 = new ShortcutInfo.Builder(this, "dShortcut1")
                .setIntent(intent1)
                .setRank(1)
                .setLongLabel("Dynamic Shortcut 1")
                .setShortLabel("This is the shortcut 1")
                .setIcon(Icon.createWithResource(this, R.drawable.ic_home_black_24dp))
                .build();


        ShortcutInfo shortcut2 = new ShortcutInfo.Builder(this, "web_link")
                .setRank(0)
                .setShortLabel("Journaldev.com")
                .setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.journaldev.com")))
                .build();


        shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut1, shortcut2));

        //shortcutManager.disableShortcuts(Arrays.asList(shortcut1.getId()));

    }