package com.example.android.wifidirect; import android.app.Fragment; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.net.wifi.WpsInfo; import android.net.wifi.p2p.WifiP2pConfig; import android.net.wifi.p2p.WifiP2pDevice; import android.net.wifi.p2p.WifiP2pInfo; import android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.MimeTypeMap; import android.widget.TextView; import android.widget.Toast; import com.example.android.wifidirect.DeviceListFragment.DeviceActionListener; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * A fragment that manages a particular peer and allows interaction with device * i.e. setting up network connection and transferring data. */ public class DeviceDetailFragment extends Fragment implements ConnectionInfoListener { protected static final int CHOOSE_FILE_RESULT_CODE = 20; private WifiP2pDevice device; private WifiP2pInfo info; ProgressDialog progressDialog = null; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override mContentView = inflater.inflate(R.layout.device_detail, null); @Override WifiP2pConfig config = new WifiP2pConfig(); config.deviceAddress = device.deviceAddress; config.wps.setup = WpsInfo.PBC; config.groupOwnerIntent = 15; if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } progressDialog = ProgressDialog.show(getActivity(), "Press back to cancel", "Connecting to :" + device.deviceAddress, true, true // new DialogInterface.OnCancelListener() { // // @Override // public void onCancel(DialogInterface dialog) { // ((DeviceActionListener) getActivity()).cancelDisconnect(); // } // } ); ((DeviceActionListener) getActivity()).connect(config); } }); mContentView.findViewById(R.id.btn_disconnect).setOnClickListener( @Override ((DeviceActionListener) getActivity()).disconnect(); } }); mContentView.findViewById(R.id.btn_start_client).setOnClickListener( @Override // Allow user to pick an image from Gallery or other // registered apps Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, CHOOSE_FILE_RESULT_CODE); } }); return mContentView; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // User has picked an image. Transfer it to group owner i.e peer using // FileTransferService. Uri uri = data.getData(); fileName = f.getName(); TextView statusText = (TextView) mContentView.findViewById(R.id.status_text); statusText.setText("Sending: " + uri); Log.d(WiFiDirectActivity.TAG, "Intent----------- " + uri); Intent serviceIntent = new Intent(getActivity(), FileTransferService.class); serviceIntent.setAction(FileTransferService.ACTION_SEND_FILE); serviceIntent.putExtra(FileTransferService.EXTRAS_FILE_PATH, uri.toString()); serviceIntent.putExtra(FileTransferService.EXTRAS_GROUP_OWNER_ADDRESS, info.groupOwnerAddress.getHostAddress()); serviceIntent.putExtra(FileTransferService.EXTRAS_GROUP_OWNER_PORT, 8988); getActivity().startService(serviceIntent); } @Override public void onConnectionInfoAvailable(final WifiP2pInfo info) { if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } this.info = info; // The owner IP is now known. TextView view = (TextView) mContentView.findViewById(R.id.group_owner); view.setText(getResources().getString(R.string.group_owner_text) + ((info.isGroupOwner == true) ? getResources().getString(R.string.yes) : getResources().getString(R.string.no))); // InetAddress from WifiP2pInfo struct. view = (TextView) mContentView.findViewById(R.id.device_info); view.setText("Group Owner IP - " + info.groupOwnerAddress.getHostAddress()); // After the group negotiation, we assign the group owner as the file // server. The file server is single threaded, single connection server // socket. if (info.groupFormed && info.isGroupOwner) { new FileServerAsyncTask(getActivity(), mContentView.findViewById(R.id.status_text)) .execute(); } else if (info.groupFormed) { // The other device acts as the client. In this case, we enable the // get file button. ((TextView) mContentView.findViewById(R.id.status_text)).setText(getResources() .getString(R.string.client_text)); } // hide the connect button } /** * Updates the UI with device data * * @param device the device to be displayed */ public void showDetails(WifiP2pDevice device) { this.device = device; TextView view = (TextView) mContentView.findViewById(R.id.device_address); view.setText(device.deviceAddress); view = (TextView) mContentView.findViewById(R.id.device_info); view.setText(device.toString()); } /** * Clears the UI fields after a disconnect or direct mode disable operation. */ public void resetViews() { TextView view = (TextView) mContentView.findViewById(R.id.device_address); view.setText(R.string.empty); view = (TextView) mContentView.findViewById(R.id.device_info); view.setText(R.string.empty); view = (TextView) mContentView.findViewById(R.id.group_owner); view.setText(R.string.empty); view = (TextView) mContentView.findViewById(R.id.status_text); view.setText(R.string.empty); } /** * A simple server socket that accepts connection and writes some data on * the stream. */ private TextView statusText; //String FileName = "bundle.fileName"; /** * @param context * @param statusText */ this.context = context; this.statusText = (TextView) statusText; } @Override try { Log.d(WiFiDirectActivity.TAG, "Server: Socket opened"); Log.d(WiFiDirectActivity.TAG, "Server: connection done"); /*final File f = new File(Environment.getExternalStorageDirectory() + "/" + "Wifidirect" + "/wifip2pshared-" + System.currentTimeMillis() + ".jpg");*/ + "Wifidirect" + "/" + fileName); if (!dirs.exists()) dirs.mkdirs(); f.createNewFile(); Log.d(WiFiDirectActivity.TAG, "server: copying files " + f.toString()); serverSocket.close(); return f.getAbsolutePath(); Log.e(WiFiDirectActivity.TAG, e.getMessage()); return null; } } /* * (non-Javadoc) * @see android.os.AsyncTask#onPostExecute(java.lang.Object) */ @Override if (result != null) { statusText.setText("File copied - " + result); Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + result), "image/*"); context.startActivity(intent); } } /* * (non-Javadoc) * @see android.os.AsyncTask#onPreExecute() */ @Override protected void onPreExecute() { statusText.setText("Opening a server socket"); } } byte buf[] = new byte[1024]; int len; try { while ((len = inputStream.read(buf)) != -1) { out.write(buf, 0, len); } out.close(); inputStream.close(); Log.d(WiFiDirectActivity.TAG, e.toString()); return false; } return true; } }
Standard input is empty
Main.java:39: error: class DeviceDetailFragment is public, should be declared in a file named DeviceDetailFragment.java
public class DeviceDetailFragment extends Fragment implements ConnectionInfoListener {
^
Main.java:3: error: package android.app does not exist
import android.app.Fragment;
^
Main.java:4: error: package android.app does not exist
import android.app.ProgressDialog;
^
Main.java:5: error: package android.content does not exist
import android.content.Context;
^
Main.java:6: error: package android.content does not exist
import android.content.DialogInterface;
^
Main.java:7: error: package android.content does not exist
import android.content.Intent;
^
Main.java:8: error: package android.net does not exist
import android.net.Uri;
^
Main.java:9: error: package android.net.wifi does not exist
import android.net.wifi.WpsInfo;
^
Main.java:10: error: package android.net.wifi.p2p does not exist
import android.net.wifi.p2p.WifiP2pConfig;
^
Main.java:11: error: package android.net.wifi.p2p does not exist
import android.net.wifi.p2p.WifiP2pDevice;
^
Main.java:12: error: package android.net.wifi.p2p does not exist
import android.net.wifi.p2p.WifiP2pInfo;
^
Main.java:13: error: package android.net.wifi.p2p.WifiP2pManager does not exist
import android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener;
^
Main.java:14: error: package android.os does not exist
import android.os.AsyncTask;
^
Main.java:15: error: package android.os does not exist
import android.os.Bundle;
^
Main.java:16: error: package android.os does not exist
import android.os.Environment;
^
Main.java:17: error: package android.util does not exist
import android.util.Log;
^
Main.java:18: error: package android.view does not exist
import android.view.LayoutInflater;
^
Main.java:19: error: package android.view does not exist
import android.view.View;
^
Main.java:20: error: package android.view does not exist
import android.view.ViewGroup;
^
Main.java:21: error: package android.webkit does not exist
import android.webkit.MimeTypeMap;
^
Main.java:22: error: package android.widget does not exist
import android.widget.TextView;
^
Main.java:23: error: package android.widget does not exist
import android.widget.Toast;
^
Main.java:25: error: package com.example.android.wifidirect.DeviceListFragment does not exist
import com.example.android.wifidirect.DeviceListFragment.DeviceActionListener;
^
Main.java:39: error: cannot find symbol
public class DeviceDetailFragment extends Fragment implements ConnectionInfoListener {
^
symbol: class Fragment
Main.java:39: error: cannot find symbol
public class DeviceDetailFragment extends Fragment implements ConnectionInfoListener {
^
symbol: class ConnectionInfoListener
Main.java:42: error: cannot find symbol
private View mContentView = null;
^
symbol: class View
location: class DeviceDetailFragment
Main.java:43: error: cannot find symbol
private WifiP2pDevice device;
^
symbol: class WifiP2pDevice
location: class DeviceDetailFragment
Main.java:44: error: cannot find symbol
private WifiP2pInfo info;
^
symbol: class WifiP2pInfo
location: class DeviceDetailFragment
Main.java:45: error: cannot find symbol
ProgressDialog progressDialog = null;
^
symbol: class ProgressDialog
location: class DeviceDetailFragment
Main.java:49: error: cannot find symbol
public void onActivityCreated(Bundle savedInstanceState) {
^
symbol: class Bundle
location: class DeviceDetailFragment
Main.java:54: error: cannot find symbol
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
^
symbol: class LayoutInflater
location: class DeviceDetailFragment
Main.java:54: error: cannot find symbol
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
^
symbol: class ViewGroup
location: class DeviceDetailFragment
Main.java:54: error: cannot find symbol
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
^
symbol: class Bundle
location: class DeviceDetailFragment
Main.java:54: error: cannot find symbol
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
^
symbol: class View
location: class DeviceDetailFragment
Main.java:109: error: cannot find symbol
public void onActivityResult(int requestCode, int resultCode, Intent data) {
^
symbol: class Intent
location: class DeviceDetailFragment
Main.java:131: error: cannot find symbol
public void onConnectionInfoAvailable(final WifiP2pInfo info) {
^
symbol: class WifiP2pInfo
location: class DeviceDetailFragment
Main.java:171: error: cannot find symbol
public void showDetails(WifiP2pDevice device) {
^
symbol: class WifiP2pDevice
location: class DeviceDetailFragment
Main.java:202: error: cannot find symbol
public static class FileServerAsyncTask extends AsyncTask<Void, Void, String> {
^
symbol: class AsyncTask
location: class DeviceDetailFragment
Main.java:204: error: cannot find symbol
private Context context;
^
symbol: class Context
location: class FileServerAsyncTask
Main.java:205: error: cannot find symbol
private TextView statusText;
^
symbol: class TextView
location: class FileServerAsyncTask
Main.java:213: error: cannot find symbol
public FileServerAsyncTask(Context context, View statusText) {
^
symbol: class Context
location: class FileServerAsyncTask
Main.java:213: error: cannot find symbol
public FileServerAsyncTask(Context context, View statusText) {
^
symbol: class View
location: class FileServerAsyncTask
Main.java:50: error: cannot find symbol
super.onActivityCreated(savedInstanceState);
^
symbol: variable super
location: class DeviceDetailFragment
Main.java:48: error: method does not override or implement a method from a supertype
@Override
^
Main.java:56: error: package R does not exist
mContentView = inflater.inflate(R.layout.device_detail, null);
^
Main.java:57: error: package View does not exist
mContentView.findViewById(R.id.btn_connect).setOnClickListener(new View.OnClickListener() {
^
Main.java:57: error: package R does not exist
mContentView.findViewById(R.id.btn_connect).setOnClickListener(new View.OnClickListener() {
^
Main.java:84: error: package View does not exist
new View.OnClickListener() {
^
Main.java:83: error: package R does not exist
mContentView.findViewById(R.id.btn_disconnect).setOnClickListener(
^
Main.java:93: error: package View does not exist
new View.OnClickListener() {
^
Main.java:92: error: package R does not exist
mContentView.findViewById(R.id.btn_start_client).setOnClickListener(
^
Main.java:53: error: method does not override or implement a method from a supertype
@Override
^
Main.java:115: error: cannot find symbol
Uri uri = data.getData();
^
symbol: class Uri
location: class DeviceDetailFragment
Main.java:118: error: cannot find symbol
TextView statusText = (TextView) mContentView.findViewById(R.id.status_text);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:118: error: cannot find symbol
TextView statusText = (TextView) mContentView.findViewById(R.id.status_text);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:118: error: package R does not exist
TextView statusText = (TextView) mContentView.findViewById(R.id.status_text);
^
Main.java:120: error: cannot find symbol
Log.d(WiFiDirectActivity.TAG, "Intent----------- " + uri);
^
symbol: variable WiFiDirectActivity
location: class DeviceDetailFragment
Main.java:120: error: cannot find symbol
Log.d(WiFiDirectActivity.TAG, "Intent----------- " + uri);
^
symbol: variable Log
location: class DeviceDetailFragment
Main.java:121: error: cannot find symbol
Intent serviceIntent = new Intent(getActivity(), FileTransferService.class);
^
symbol: class Intent
location: class DeviceDetailFragment
Main.java:121: error: cannot find symbol
Intent serviceIntent = new Intent(getActivity(), FileTransferService.class);
^
symbol: class Intent
location: class DeviceDetailFragment
Main.java:121: error: cannot find symbol
Intent serviceIntent = new Intent(getActivity(), FileTransferService.class);
^
symbol: method getActivity()
location: class DeviceDetailFragment
Main.java:121: error: cannot find symbol
Intent serviceIntent = new Intent(getActivity(), FileTransferService.class);
^
symbol: class FileTransferService
location: class DeviceDetailFragment
Main.java:122: error: cannot find symbol
serviceIntent.setAction(FileTransferService.ACTION_SEND_FILE);
^
symbol: variable FileTransferService
location: class DeviceDetailFragment
Main.java:123: error: cannot find symbol
serviceIntent.putExtra(FileTransferService.EXTRAS_FILE_PATH, uri.toString());
^
symbol: variable FileTransferService
location: class DeviceDetailFragment
Main.java:124: error: cannot find symbol
serviceIntent.putExtra(FileTransferService.EXTRAS_GROUP_OWNER_ADDRESS,
^
symbol: variable FileTransferService
location: class DeviceDetailFragment
Main.java:126: error: cannot find symbol
serviceIntent.putExtra(FileTransferService.EXTRAS_GROUP_OWNER_PORT, 8988);
^
symbol: variable FileTransferService
location: class DeviceDetailFragment
Main.java:127: error: cannot find symbol
getActivity().startService(serviceIntent);
^
symbol: method getActivity()
location: class DeviceDetailFragment
Main.java:108: error: method does not override or implement a method from a supertype
@Override
^
Main.java:136: error: cannot find symbol
this.getView().setVisibility(View.VISIBLE);
^
symbol: variable View
location: class DeviceDetailFragment
Main.java:136: error: cannot find symbol
this.getView().setVisibility(View.VISIBLE);
^
symbol: method getView()
Main.java:139: error: cannot find symbol
TextView view = (TextView) mContentView.findViewById(R.id.group_owner);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:139: error: cannot find symbol
TextView view = (TextView) mContentView.findViewById(R.id.group_owner);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:139: error: package R does not exist
TextView view = (TextView) mContentView.findViewById(R.id.group_owner);
^
Main.java:140: error: package R does not exist
view.setText(getResources().getString(R.string.group_owner_text)
^
Main.java:140: error: cannot find symbol
view.setText(getResources().getString(R.string.group_owner_text)
^
symbol: method getResources()
location: class DeviceDetailFragment
Main.java:141: error: package R does not exist
+ ((info.isGroupOwner == true) ? getResources().getString(R.string.yes)
^
Main.java:141: error: cannot find symbol
+ ((info.isGroupOwner == true) ? getResources().getString(R.string.yes)
^
symbol: method getResources()
location: class DeviceDetailFragment
Main.java:142: error: package R does not exist
: getResources().getString(R.string.no)));
^
Main.java:142: error: cannot find symbol
: getResources().getString(R.string.no)));
^
symbol: method getResources()
location: class DeviceDetailFragment
Main.java:145: error: cannot find symbol
view = (TextView) mContentView.findViewById(R.id.device_info);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:145: error: package R does not exist
view = (TextView) mContentView.findViewById(R.id.device_info);
^
Main.java:152: error: cannot find symbol
new FileServerAsyncTask(getActivity(), mContentView.findViewById(R.id.status_text))
^
symbol: method getActivity()
location: class DeviceDetailFragment
Main.java:152: error: package R does not exist
new FileServerAsyncTask(getActivity(), mContentView.findViewById(R.id.status_text))
^
Main.java:153: error: cannot find symbol
.execute();
^
symbol: method execute()
location: class FileServerAsyncTask
Main.java:157: error: cannot find symbol
mContentView.findViewById(R.id.btn_start_client).setVisibility(View.VISIBLE);
^
symbol: variable View
location: class DeviceDetailFragment
Main.java:157: error: package R does not exist
mContentView.findViewById(R.id.btn_start_client).setVisibility(View.VISIBLE);
^
Main.java:159: error: package R does not exist
.getString(R.string.client_text));
^
Main.java:158: error: cannot find symbol
((TextView) mContentView.findViewById(R.id.status_text)).setText(getResources()
^
symbol: method getResources()
location: class DeviceDetailFragment
Main.java:158: error: cannot find symbol
((TextView) mContentView.findViewById(R.id.status_text)).setText(getResources()
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:158: error: package R does not exist
((TextView) mContentView.findViewById(R.id.status_text)).setText(getResources()
^
Main.java:163: error: cannot find symbol
mContentView.findViewById(R.id.btn_connect).setVisibility(View.GONE);
^
symbol: variable View
location: class DeviceDetailFragment
Main.java:163: error: package R does not exist
mContentView.findViewById(R.id.btn_connect).setVisibility(View.GONE);
^
Main.java:130: error: method does not override or implement a method from a supertype
@Override
^
Main.java:173: error: cannot find symbol
this.getView().setVisibility(View.VISIBLE);
^
symbol: variable View
location: class DeviceDetailFragment
Main.java:173: error: cannot find symbol
this.getView().setVisibility(View.VISIBLE);
^
symbol: method getView()
Main.java:174: error: cannot find symbol
TextView view = (TextView) mContentView.findViewById(R.id.device_address);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:174: error: cannot find symbol
TextView view = (TextView) mContentView.findViewById(R.id.device_address);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:174: error: package R does not exist
TextView view = (TextView) mContentView.findViewById(R.id.device_address);
^
Main.java:176: error: cannot find symbol
view = (TextView) mContentView.findViewById(R.id.device_info);
^
symbol: class TextView
location: class DeviceDetailFragment
Main.java:176: error: package R does not exist
view = (TextView) mContentView.findViewById(R.id.device_info);
^
100 errors
Standard output is empty