35 @Override
public void onCreate(Bundle savedInstanceState)
37 super.onCreate(savedInstanceState);
39 if (!Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction()))
45 ActivityShortcutsBinding binding = ActivityShortcutsBinding.inflate(getLayoutInflater());
46 setContentView(binding.getRoot());
48 if (getSupportActionBar() !=
null)
49 getSupportActionBar().setDisplayHomeAsUpEnabled(
true);
53 BookmarkListAdapter adapter =
new BookmarkListAdapter();
54 adapter.setActionsEnabled(
false);
55 adapter.setCallbacks(
new BookmarkListAdapter.Callbacks() {
56 @Override public void onItemClick(String refStr)
58 if (!ConnectionReference.isBookmarkReference(refStr))
60 BookmarkBase bookmark = findBookmark(adapter, refStr);
61 String label = bookmark != null ? bookmark.getLabel() : refStr;
62 setupShortcut(refStr, label);
65 @Override
public void onDelete(
long id)
69 @Override
public void onExport(BookmarkBase bookmark)
74 binding.recyclerViewShortcuts.setLayoutManager(
new LinearLayoutManager(
this));
75 binding.recyclerViewShortcuts.setAdapter(adapter);
77 viewModel.getBookmarks().observe(
this, adapter::setItems);
79 viewModel.loadBookmarks();
82 @Override
public boolean onSupportNavigateUp()
88 private static BookmarkBase findBookmark(BookmarkListAdapter adapter, String refStr)
90 for (BookmarkBase b : adapter.getItems())
92 if (ConnectionReference.getBookmarkReference(b.getId()).equals(refStr))
98 private void setupShortcut(String strRef, String defaultLabel)
100 final EditText input =
new EditText(
this);
101 input.setText(defaultLabel);
103 new AlertDialog.Builder(
this)
104 .setTitle(R.string.dlg_title_create_shortcut)
105 .setMessage(R.string.dlg_msg_create_shortcut)
110 String label = input.getText().toString();
112 label = defaultLabel;
114 Intent shortcutIntent = new Intent(Intent.ACTION_VIEW);
115 shortcutIntent.setClassName(this,
116 SessionRequestHandlerActivity.class.getName());
117 shortcutIntent.setData(Uri.parse(strRef));
119 ShortcutInfoCompat shortcutInfo =
120 new ShortcutInfoCompat.Builder(this,
"shortcut_" + strRef.hashCode())
121 .setShortLabel(label)
122 .setIcon(IconCompat.createWithResource(this, R.mipmap.ic_launcher))
123 .setIntent(shortcutIntent)
127 ShortcutManagerCompat.createShortcutResultIntent(this, shortcutInfo));
130 .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss())