Added pinning of contacts

This commit is contained in:
M66B
2020-03-22 13:43:12 +01:00
parent ecd72103d6
commit 3c49c14511
6 changed files with 156 additions and 45 deletions

View File

@@ -42,6 +42,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.PopupMenu;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
@@ -235,7 +237,9 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
popupMenu.getMenu().add(Menu.NONE, R.string.title_advanced_never_favorite, 1, R.string.title_advanced_never_favorite);
if (share.resolveActivity(context.getPackageManager()) != null)
popupMenu.getMenu().add(Menu.NONE, R.string.title_share, 2, R.string.title_share);
popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 3, R.string.title_delete);
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context))
popupMenu.getMenu().add(Menu.NONE, R.string.title_pin, 3, R.string.title_pin);
popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 4, R.string.title_delete);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
@@ -247,6 +251,9 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
case R.string.title_share:
onActionShare();
return true;
case R.string.title_pin:
onActionPin();
return true;
case R.string.title_delete:
onActionDelete();
return true;
@@ -290,6 +297,11 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
}
}
private void onActionPin() {
ShortcutInfoCompat.Builder builder = Shortcuts.getShortcut(context, contact);
ShortcutManagerCompat.requestPinShortcut(context, builder.build(), null);
}
private void onActionDelete() {
Bundle args = new Bundle();
args.putLong("id", contact.id);