Skip to content

Commit

Permalink
add messaging feature
Browse files Browse the repository at this point in the history
  • Loading branch information
xionxiao committed Jul 11, 2018
1 parent bd380d3 commit 0a90c38
Show file tree
Hide file tree
Showing 19 changed files with 938 additions and 61 deletions.
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-feature
android:name="android.hardware.camera"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

package com.cisco.sparksdk.kitchensink.actions;

import android.net.Uri;
import android.os.Environment;
import android.util.Pair;
import android.view.View;

Expand All @@ -32,11 +34,22 @@
import com.cisco.sparksdk.kitchensink.actions.events.LoginEvent;
import com.cisco.sparksdk.kitchensink.actions.events.OnIncomingCallEvent;
import com.cisco.sparksdk.kitchensink.actions.events.RejectEvent;
import com.ciscospark.androidsdk.CompletionHandler;
import com.ciscospark.androidsdk.Spark;
import com.ciscospark.androidsdk.message.LocalFile;
import com.ciscospark.androidsdk.message.Mention;
import com.ciscospark.androidsdk.message.Message;
import com.ciscospark.androidsdk.message.MessageClient;
import com.ciscospark.androidsdk.message.RemoteFile;
import com.ciscospark.androidsdk.phone.Call;
import com.ciscospark.androidsdk.phone.CallObserver;
import com.ciscospark.androidsdk.phone.MediaOption;
import com.ciscospark.androidsdk.phone.Phone;
import com.github.benoitdion.ln.Ln;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;

import static com.cisco.sparksdk.kitchensink.actions.events.SparkAgentEvent.postEvent;

Expand All @@ -53,6 +66,7 @@ public enum CameraCap {FRONT, BACK, CLOSE}

private Spark spark;
private Phone phone;
private MessageClient messageClient;
private Call activeCall;
private Call incomingCall;
private boolean isSpeakerOn = true;
Expand Down Expand Up @@ -124,6 +138,27 @@ public CallCap getCallCapability() {
return callCap;
}

public MessageClient getMessageClient() {
if (messageClient == null) {
messageClient = getSpark().messages();
}
return messageClient;
}

public void sendMessage(String idOrEmail, String message, Mention[] mentions, LocalFile[] files,
CompletionHandler<Message> handler) {
getMessageClient().post(idOrEmail, message, mentions, files, handler);
}


public void downloadThumbnail(RemoteFile file, File saveTo, MessageClient.ProgressHandler handler, CompletionHandler<Uri> completionHandler) {
getMessageClient().downloadThumbnail(file, saveTo.getPath(), handler, completionHandler);
}

public void downloadFile(RemoteFile file, File saveTo, MessageClient.ProgressHandler handler, CompletionHandler<Uri> completionHandler) {
getMessageClient().downloadFile(file, saveTo.getPath(), handler, completionHandler);
}

public void dial(String callee, View localView, View remoteView, View screenSharing) {
isDialing = true;
phone.dial(callee, getMediaOption(localView, remoteView, screenSharing), (result) -> {
Expand All @@ -132,7 +167,7 @@ public void dial(String callee, View localView, View remoteView, View screenShar
if (!isDialing) {
hangup();
} else {
if(activeCall!=null) activeCall.setObserver(callObserver);
if (activeCall != null) activeCall.setObserver(callObserver);
}
}
isDialing = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ public Fragment getFragment() {
return getFragmentManager().findFragmentById(R.id.launcher);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
RequirePermissionAction.PermissionsRequired(requestCode, grantResults);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,11 @@ public static CallFragment newAnswerCallInstance() {
return CallFragment.newInstance(INCOMING_CALL);
}

public static CallFragment newInstance(String callee) {
public static CallFragment newInstance(String id) {
CallFragment fragment = new CallFragment();
Bundle args = new Bundle();
args.putInt(LAYOUT, R.layout.fragment_call);
args.putString(CALLEE, callee);
args.putString(CALLEE, id);
fragment.setArguments(args);
return fragment;
}
Expand Down Expand Up @@ -191,7 +191,7 @@ public void onHangup() {
if (isConnected) {
agent.hangup();
} else {
((LauncherActivity)getActivity()).goBackStack();
((LauncherActivity) getActivity()).goBackStack();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,22 +59,22 @@ public LauncherFragment() {

@OnClick(R.id.buttonSetup)
public void setup() {
((LauncherActivity)getActivity()).replace(setupFragment);
((LauncherActivity) getActivity()).replace(setupFragment);
}

@OnClick(R.id.buttonDial)
@OnClick({R.id.buttonDial, R.id.buttonMessaging})
public void dial() {
((LauncherActivity)getActivity()).replace(dialFragment);
((LauncherActivity) getActivity()).replace(dialFragment);
}

@OnClick(R.id.buttonWaitingCall)
public void waitingCall() {
((LauncherActivity)getActivity()).replace(waitingCallFragment);
((LauncherActivity) getActivity()).replace(waitingCallFragment);
}

@OnClick(R.id.buttonFeedback)
public void sendFeedback() {
((LauncherActivity)getActivity()).replace(feedbackFragment);
((LauncherActivity) getActivity()).replace(feedbackFragment);
}

@OnClick(R.id.buttonLogout)
Expand Down
Loading

0 comments on commit 0a90c38

Please sign in to comment.