Skip to content

Commit

Permalink
Merge pull request #7 from webex/SSDK-1707
Browse files Browse the repository at this point in the history
 [SSDK-1707] add max bandwidth settings
  • Loading branch information
xionxiao authored Jun 14, 2018
2 parents eb488a4 + 14ec1d0 commit 4349479
Show file tree
Hide file tree
Showing 11 changed files with 215 additions and 129 deletions.
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@

<activity
android:name=".launcher.LauncherActivity"
android:configChanges="screenSize|orientation" />
android:screenOrientation="unspecified"
android:configChanges="orientation|screenSize" />

</application>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
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.Result;
import com.ciscospark.androidsdk.Spark;
import com.ciscospark.androidsdk.phone.Call;
import com.ciscospark.androidsdk.phone.CallObserver;
Expand Down Expand Up @@ -95,6 +96,19 @@ public void setSpeakerPhoneOn(boolean on) {
isSpeakerOn = on;
}

public void setMaxBandWidth(int maxBandWidth) {
if (phone != null) {
phone.setVideoMaxBandwidth(maxBandWidth);
}
}

public int getMaxBandWidth() {
if (phone != null) {
return phone.getVideoMaxBandwidth();
}
return -1;
}

public void register() {
phone = spark.phone();
phone.register(r -> {
Expand Down Expand Up @@ -129,10 +143,10 @@ public CallCap getCallCapability() {

public void dial(String callee, View localView, View remoteView, View screenSharing) {
isDialing = true;
phone.dial(callee, getMediaOption(localView, remoteView, screenSharing), (result) -> {
phone.dial(callee, getMediaOption(localView, remoteView, screenSharing), (Result<Call> result) -> {
if (result.isSuccessful()) {
activeCall = result.getData();
if (isDialing == false) {
if (!isDialing || activeCall == null) {
hangup();
} else {
activeCall.setObserver(callObserver);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,13 @@
import com.cisco.sparksdk.kitchensink.actions.IAction;
import com.cisco.sparksdk.kitchensink.actions.SparkAgent;
import com.cisco.sparksdk.kitchensink.actions.events.SearchRoomCompleteEvent;
import com.github.benoitdion.ln.Ln;


public class SearchRoomAction implements IAction {
@Override
public void execute() {
SparkAgent agent = SparkAgent.getInstance();
agent.getSpark().rooms().list(null, 0, null, null, result -> {
Ln.e(result.getData().toString());
new SearchRoomCompleteEvent(result).post();
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.cisco.sparksdk.kitchensink.actions.SparkAgent;
import com.cisco.sparksdk.kitchensink.actions.events.LoginEvent;
import com.ciscospark.androidsdk.Spark;
import com.ciscospark.androidsdk.auth.OAuthTestUserAuthenticator;
import com.ciscospark.androidsdk.auth.OAuthWebViewAuthenticator;

import static com.cisco.sparksdk.kitchensink.KitchenSinkApp.getApplication;
Expand Down Expand Up @@ -57,11 +58,16 @@ public SparkIdLoginAction(WebView view) {

@Override
public void execute() {
OAuthTestUserAuthenticator oAuth2;
oAuth2 = new OAuthTestUserAuthenticator(clientId, clientSec, scope, redirect,
"sparksdktestuser16@tropo.com", "sparksdktestuser16", "Test(123)");
/*
OAuthWebViewAuthenticator oAuth2;
oAuth2 = new OAuthWebViewAuthenticator(clientId, clientSec, redirect, scope);
*/
Spark spark = new Spark(getApplication(), oAuth2);
SparkAgent.getInstance().setSpark(spark);
oAuth2.authorize(view, result -> {
oAuth2.authorize(/*view, */result -> {
if (result.isSuccessful()) {
new RegisterAction(oAuth2).execute();
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import android.view.View;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Switch;

import com.cisco.sparksdk.kitchensink.R;
Expand All @@ -37,15 +38,20 @@

import org.greenrobot.eventbus.Subscribe;

import java.util.Arrays;

import butterknife.BindView;
import butterknife.OnCheckedChanged;
import butterknife.OnClick;
import butterknife.OnItemSelected;

/**
* A simple {@link BaseFragment} subclass.
* Setup fragment, {@link BaseFragment} subclass.
*/
public class SetupFragment extends BaseFragment {

final private int BANDWIDTH[] = {64000, 177000, 384000, 768000, 2000000, 3000000, 4000000};

private SparkAgent agent;

@BindView(R.id.preview)
Expand All @@ -69,6 +75,9 @@ public class SetupFragment extends BaseFragment {
@BindView(R.id.closePreview)
RadioButton radioClosePreview;

@BindView(R.id.spinnerBandWidth)
Spinner maxBandwidth;

public SetupFragment() {
// Required empty public constructor
setLayout(R.layout.fragment_setup);
Expand Down Expand Up @@ -113,6 +122,15 @@ private void setupWidgetStates() {
radioClosePreview.setChecked(true);
break;
}

// Setup max bandwidth
int bw = agent.getMaxBandWidth();
int index = Arrays.binarySearch(BANDWIDTH, bw);
if (index == -1) {
// default max bandwidth 2000000
index = 4;
}
maxBandwidth.setSelection(index);
}

@OnClick({R.id.audioCallOnly, R.id.audioVideoCall})
Expand Down Expand Up @@ -165,6 +183,11 @@ private void setFrontCamera() {
agent.startPreview(preview);
}

@OnItemSelected(R.id.spinnerBandWidth)
public void onMaxBandWidthSpinnerSelected(Spinner spinner, int position) {
agent.setMaxBandWidth(BANDWIDTH[position]);
}

@SuppressWarnings("unused")
@Subscribe
public void onEventMainThread(PermissionAcquiredEvent event) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,85 +32,91 @@

public class RoomFragment extends BaseFragment {

@BindView(R.id.room_list)
public ListView listView;

private List<Room> roomList;

public RoomFragment() {
// Required empty public constructor
setLayout(R.layout.fragment_room);
roomList = new ArrayList<>();
}

@Override
public void onStart() {
super.onStart();
new SearchRoomAction().execute();
}

@OnItemClick(R.id.room_list)
public void roomListItemClicked(int position) {
final Room p = roomList.get(position);
Fragment fm = ((LauncherActivity) getActivity()).getFragment();
((DialPagersFragment) fm).gotoDialPage(p.getId());
}

@Override
public void onActivityCreated(Bundle saved) {
super.onActivityCreated(saved);
RoomFragment.RoomAdapter adapter = new RoomFragment.RoomAdapter(getActivity(), R.layout.listview_person, roomList);
listView.setAdapter(adapter);
}

class RoomAdapter extends ArrayAdapter<Room> {

private int resourceId;


public RoomAdapter(Context context, int textViewResourceId,
List<Room> objects) {
super(context, textViewResourceId, objects);
resourceId = textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
RoomFragment.ViewHolder holder = new RoomFragment.ViewHolder(view);

Room room = getItem(position);

holder.name.setText(room.getTitle());
holder.email.setText(room.getType().toString());
return view;
}
}

static class ViewHolder {
@BindView(R.id.person_name)
TextView name;

@BindView(R.id.person_email)
TextView email;

@BindView(R.id.person_icon)
ImageView avatar;

public ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}

@SuppressWarnings("unused")
@Subscribe
public void onEventMainThread(SearchRoomCompleteEvent event) {
dismissBusyIndicator();
if (event.isSuccessful()) {
List<Room> result = (List<Room>) event.getResult().getData();
roomList.clear();
roomList.addAll(result);
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
}
}
@BindView(R.id.room_list)
public ListView listView;

private List<Room> roomList;

public RoomFragment() {
// Required empty public constructor
setLayout(R.layout.fragment_room);
roomList = new ArrayList<>();
}

@Override
public void onStart() {
super.onStart();
//new SearchRoomAction().execute();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
new SearchRoomAction().execute();
return super.onCreateView(inflater, container, savedInstanceState);
}

@OnItemClick(R.id.room_list)
public void roomListItemClicked(int position) {
final Room p = roomList.get(position);
Fragment fm = ((LauncherActivity) getActivity()).getFragment();
((DialPagersFragment) fm).gotoDialPage(p.getId());
}

@Override
public void onActivityCreated(Bundle saved) {
super.onActivityCreated(saved);
RoomFragment.RoomAdapter adapter = new RoomFragment.RoomAdapter(getActivity(), R.layout.listview_person, roomList);
listView.setAdapter(adapter);
}

class RoomAdapter extends ArrayAdapter<Room> {

private int resourceId;


public RoomAdapter(Context context, int textViewResourceId,
List<Room> objects) {
super(context, textViewResourceId, objects);
resourceId = textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = LayoutInflater.from(getContext()).inflate(resourceId, null);
RoomFragment.ViewHolder holder = new RoomFragment.ViewHolder(view);

Room room = getItem(position);

holder.name.setText(room.getTitle());
holder.email.setText(room.getType().toString());
return view;
}
}

static class ViewHolder {
@BindView(R.id.person_name)
TextView name;

@BindView(R.id.person_email)
TextView email;

@BindView(R.id.person_icon)
ImageView avatar;

public ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}

@SuppressWarnings("unused")
@Subscribe
public void onEventMainThread(SearchRoomCompleteEvent event) {
dismissBusyIndicator();
if (event.isSuccessful()) {
List<Room> result = (List<Room>) event.getResult().getData();
roomList.clear();
roomList.addAll(result);
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
}
}
}
6 changes: 3 additions & 3 deletions app/src/main/res/layout/fragment_call.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">

<com.webex.wseclient.WseSurfaceView
<com.ciscospark.androidsdk.phone.MediaRenderView
android:id="@+id/localView"
android:layout_width="60dp"
android:layout_height="80dp"
Expand All @@ -22,7 +22,7 @@
app:layout_constraintTop_toTopOf="@+id/remoteView"
tools:ignore="MissingRegistered" />

<com.webex.wseclient.WseSurfaceView
<com.ciscospark.androidsdk.phone.MediaRenderView
android:id="@+id/screenShare"
android:layout_width="60dp"
android:layout_height="80dp"
Expand All @@ -35,7 +35,7 @@
app:layout_constraintTop_toBottomOf="@+id/localView"
tools:ignore="MissingRegistered" />

<com.webex.wseclient.WseSurfaceView
<com.ciscospark.androidsdk.phone.MediaRenderView
android:id="@+id/remoteView"
android:layout_width="0dp"
android:layout_height="200dp"
Expand Down
Loading

0 comments on commit 4349479

Please sign in to comment.