private ChooserTarget buildTarget(int targetId) { String title=String.format(titleTemplate, targetId); int iconId=getResources().getIdentifier("ic_share" + targetId, "drawable", getPackageName()); Icon icon=Icon.createWithResource(this, iconId); float score=1.0f-((float)targetId/40); ComponentName cn=new ComponentName(this, FauxSender.class); Bundle extras=new Bundle(); extras.putInt(FauxSender.EXTRA_TARGET_ID, targetId); return(new ChooserTarget(title, icon, score, cn, extras)); } }
@NonNull private List<ChooserTarget> createChooserTargets(List<Recipient> recipients) { float score = 1.0f; List<ChooserTarget> targets = new ArrayList<>(); ComponentName componentName = new ComponentName(this, MessageCompose.class); for (Recipient recipient : recipients) { Bundle intentExtras = prepareIntentExtras(recipient); Icon icon = loadRecipientIcon(recipient); ChooserTarget chooserTarget = new ChooserTarget(recipient.getDisplayNameOrAddress(), icon, score, componentName, intentExtras); targets.add(chooserTarget); score -= 0.1; } return targets; }
@Override public List<ChooserTarget> onGetChooserTargets(ComponentName targetComponentName, IntentFilter intentFilter) { if (sServer != null && sChannel != null) { if (System.currentTimeMillis() - sSetTime >= SET_TIMEOUT) { sServer = null; sChannel = null; return null; } ComponentName componentName = new ComponentName(getPackageName(), MainActivity.class.getCanonicalName()); List<ChooserTarget> targets = new ArrayList<>(); Bundle extras = new Bundle(); extras.putString(MainActivity.ARG_SERVER_UUID, sServer.toString()); extras.putString(MainActivity.ARG_CHANNEL_NAME, sChannel); targets.add(new ChooserTarget(sChannel, Icon.createWithResource(this, R.drawable.ic_direct_share), 1.f, componentName, extras)); return targets; } return null; }
@Override public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { final List<ChooserTarget> targets = new ArrayList<>(); HostManager hostManager = HostManager.getInstance(this); final Icon icon = Icon.createWithResource(this, R.mipmap.ic_launcher); final float score = 0; final ComponentName componentName = new ComponentName(getPackageName(), "org.xbmc.kore.ui.sections.remote.RemoteActivity"); for (HostInfo host : hostManager.getHosts()) { Bundle intentExtras = new Bundle(); intentExtras.putInt("hostId", host.getId()); targets.add(new ChooserTarget(host.getName(), icon, score, componentName, intentExtras)); } return targets; } }
@Override public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { Log.d("DirectShare", "invoked"); final List<ChooserTarget> targets = new ArrayList<>(); for (Device d : BackgroundService.getInstance().getDevices().values()) { if (d.isReachable() && d.isPaired()) { Log.d("DirectShare", d.getName()); final String targetName = d.getName(); final Icon targetIcon = Icon.createWithResource(this, R.drawable.icon); final float targetRanking = 1; final ComponentName targetComponentName = new ComponentName(getPackageName(), ShareActivity.class.getCanonicalName()); final Bundle targetExtras = new Bundle(); targetExtras.putString("deviceId", d.getDeviceId()); targets.add(new ChooserTarget( targetName, targetIcon, targetRanking, targetComponentName, targetExtras )); } } return targets; } }