blob: 335a87c98850ebfe2961213184779ec63a450f5b [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.mojo.shell;
import android.text.TextUtils;
import org.chromium.mojo.application.ApplicationConnection;
import org.chromium.mojo.application.ApplicationDelegate;
import org.chromium.mojo.application.ServiceFactoryBinder;
import org.chromium.mojo.bindings.InterfaceRequest;
import org.chromium.mojo.system.MojoException;
import org.chromium.mojom.mojo.Shell;
import org.chromium.mojom.sharing.SharingSink;
final class SharingApplicationDelegate implements ApplicationDelegate {
@Override
public void initialize(Shell shell, String[] args, String url) {
}
@Override
public boolean configureIncomingConnection(ApplicationConnection connection) {
if (TextUtils.isEmpty(connection.getRequestorUrl())) {
// This is the shell connecting to the service.
connection.addService(new SharingSinkServiceFactoryBinder());
}
return true;
}
@Override
public void quit() {}
private final class SharingSinkServiceFactoryBinder
implements ServiceFactoryBinder<SharingSink> {
@Override
public void bind(InterfaceRequest<SharingSink> request) {
SharingSink.MANAGER.bind(new SharingSinkImpl(), request);
}
@Override
public String getInterfaceName() {
return SharingSink.MANAGER.getName();
}
}
private final class SharingSinkImpl implements SharingSink {
@Override
public void close() {}
@Override
public void onConnectionError(MojoException e) {}
@Override
public void onTextShared(String data) {
// TODO(pylaligand): do something slightly less dumb with the data.
System.out.println("Request to share data: " + data);
}
}
}