Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Unified Diff: webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java

Issue 1970783002: New UI for AppRTC Android Demo that is easier to use (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Styling according to comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/examples/androidapp/res/values/strings.xml ('k') | webrtc/webrtc_examples.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
index e55dba0cba4c8127594998ec1015c1efb50dccd6..b0bceccff46dae04c43a6247fdc4163ce1e7d8db 100644
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
@@ -10,16 +10,19 @@
package org.appspot.apprtc;
-import android.app.Activity;
-import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.design.widget.FloatingActionButton;
AlexG 2016/05/20 20:29:08 Can we please remove this from sample app. It requ
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
import android.util.Log;
+import android.view.ContextMenu;
import android.view.KeyEvent;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -42,15 +45,14 @@ import java.util.Random;
/**
* Handles the initial setup where the user selects which room to join.
*/
-public class ConnectActivity extends Activity {
+public class ConnectActivity extends AppCompatActivity {
private static final String TAG = "ConnectActivity";
private static final int CONNECTION_REQUEST = 1;
+ private static final int REMOVE_FAVORITE_INDEX = 0;
private static boolean commandLineRun = false;
- private ImageButton addRoomButton;
- private ImageButton removeRoomButton;
private ImageButton connectButton;
- private ImageButton connectLoopbackButton;
+ private FloatingActionButton addFavoriteButton;
private EditText roomEditText;
private ListView roomListView;
private SharedPreferences sharedPref;
@@ -114,7 +116,7 @@ public class ConnectActivity extends Activity {
public boolean onEditorAction(
TextView textView, int i, KeyEvent keyEvent) {
if (i == EditorInfo.IME_ACTION_DONE) {
- addRoomButton.performClick();
+ addFavoriteButton.performClick();
return true;
}
return false;
@@ -123,32 +125,27 @@ public class ConnectActivity extends Activity {
roomEditText.requestFocus();
roomListView = (ListView) findViewById(R.id.room_listview);
- roomListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
-
- addRoomButton = (ImageButton) findViewById(R.id.add_room_button);
- addRoomButton.setOnClickListener(addRoomListener);
- removeRoomButton = (ImageButton) findViewById(R.id.remove_room_button);
- removeRoomButton.setOnClickListener(removeRoomListener);
+ roomListView.setEmptyView(findViewById(android.R.id.empty));
+ roomListView.setOnItemClickListener(roomListClickListener);
+ registerForContextMenu(roomListView);
connectButton = (ImageButton) findViewById(R.id.connect_button);
connectButton.setOnClickListener(connectListener);
- connectLoopbackButton =
- (ImageButton) findViewById(R.id.connect_loopback_button);
- connectLoopbackButton.setOnClickListener(connectListener);
// If an implicit VIEW intent is launching the app, go directly to that URL.
final Intent intent = getIntent();
if ("android.intent.action.VIEW".equals(intent.getAction())
&& !commandLineRun) {
- commandLineRun = true;
boolean loopback = intent.getBooleanExtra(
CallActivity.EXTRA_LOOPBACK, false);
int runTimeMs = intent.getIntExtra(
CallActivity.EXTRA_RUNTIME, 0);
String room = sharedPref.getString(keyprefRoom, "");
- roomEditText.setText(room);
- connectToRoom(loopback, runTimeMs);
+ connectToRoom(room, true, loopback, runTimeMs);
return;
}
+
+ addFavoriteButton = (FloatingActionButton) findViewById(R.id.add_favorite_button);
+ addFavoriteButton.setOnClickListener(addFavoriteListener);
}
@Override
@@ -158,12 +155,42 @@ public class ConnectActivity extends Activity {
}
@Override
+ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ if (v.getId() == R.id.room_listview) {
+ AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
+ menu.setHeaderTitle(roomList.get(info.position));
+ String[] menuItems = getResources().getStringArray(R.array.roomListContextMenu);
+ for (int i = 0; i < menuItems.length; i++) {
+ menu.add(Menu.NONE, i, i, menuItems[i]);
+ }
+ } else {
+ super.onCreateContextMenu(menu, v, menuInfo);
+ }
+ }
+
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ if (item.getItemId() == REMOVE_FAVORITE_INDEX) {
+ AdapterView.AdapterContextMenuInfo info =
+ (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+ roomList.remove(info.position);
+ adapter.notifyDataSetChanged();
+ return true;
+ }
+
+ return super.onContextItemSelected(item);
+ }
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items.
if (item.getItemId() == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
+ } else if (item.getItemId() == R.id.action_loopback) {
+ connectToRoom(null, false, true, 0);
+ return true;
} else {
return super.onOptionsItemSelected(item);
}
@@ -217,28 +244,13 @@ public class ConnectActivity extends Activity {
}
}
- private final OnClickListener connectListener = new OnClickListener() {
- @Override
- public void onClick(View view) {
- boolean loopback = false;
- if (view.getId() == R.id.connect_loopback_button) {
- loopback = true;
- }
- commandLineRun = false;
- connectToRoom(loopback, 0);
- }
- };
+ private void connectToRoom(
+ String roomId, boolean commandLineRun, boolean loopback, int runTimeMs) {
+ this.commandLineRun = commandLineRun;
- private void connectToRoom(boolean loopback, int runTimeMs) {
- // Get room name (random for loopback).
- String roomId;
+ // roomId is random for loopback.
if (loopback) {
roomId = Integer.toString((new Random()).nextInt(100000000));
- } else {
- roomId = getSelectedItem();
- if (roomId == null) {
- roomId = roomEditText.getText().toString();
- }
}
String roomUrl = sharedPref.getString(
@@ -390,41 +402,46 @@ public class ConnectActivity extends Activity {
return false;
}
- private final OnClickListener addRoomListener = new OnClickListener() {
+ private final AdapterView.OnItemClickListener
+ roomListClickListener = new AdapterView.OnItemClickListener() {
@Override
- public void onClick(View view) {
- String newRoom = roomEditText.getText().toString();
- if (newRoom.length() > 0 && !roomList.contains(newRoom)) {
- adapter.add(newRoom);
- adapter.notifyDataSetChanged();
- }
+ public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+ String roomId = ((TextView) view).getText().toString();
+ connectToRoom(roomId, false, false, 0);
}
};
- private final OnClickListener removeRoomListener = new OnClickListener() {
+ private final OnClickListener addFavoriteListener = new OnClickListener() {
@Override
public void onClick(View view) {
- String selectedRoom = getSelectedItem();
- if (selectedRoom != null) {
- adapter.remove(selectedRoom);
- adapter.notifyDataSetChanged();
- }
+ AlertDialog.Builder builder = new AlertDialog.Builder(ConnectActivity.this);
+
+ final View dialogView = LayoutInflater.from(ConnectActivity.this)
+ .inflate(R.layout.dialog_add_favorite, null);
+ final EditText favoriteEditText = (EditText) dialogView.findViewById(R.id.favorite_edittext);
+ favoriteEditText.append(roomEditText.getText());
+
+ builder.setTitle(R.string.add_favorite_title)
+ .setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ String newRoom = favoriteEditText.getText().toString();
+ if (newRoom.length() > 0 && !roomList.contains(newRoom)) {
+ adapter.add(newRoom);
+ adapter.notifyDataSetChanged();
+ }
+ }
+ })
+ .setView(dialogView)
+ .setNegativeButton(R.string.cancel, null);
+ builder.show();
}
};
- private String getSelectedItem() {
- int position = AdapterView.INVALID_POSITION;
- if (roomListView.getCheckedItemCount() > 0 && adapter.getCount() > 0) {
- position = roomListView.getCheckedItemPosition();
- if (position >= adapter.getCount()) {
- position = AdapterView.INVALID_POSITION;
- }
- }
- if (position != AdapterView.INVALID_POSITION) {
- return adapter.getItem(position);
- } else {
- return null;
+ private final OnClickListener connectListener = new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ connectToRoom(roomEditText.getText().toString(), false, false, 0);
}
- }
-
+ };
}
« no previous file with comments | « webrtc/examples/androidapp/res/values/strings.xml ('k') | webrtc/webrtc_examples.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698