Skip to content

Commit 1a5f502

Browse files
committed
bug fix.
1 parent 896cbb2 commit 1a5f502

File tree

1 file changed

+41
-4
lines changed

1 file changed

+41
-4
lines changed

app/src/main/java/com/clverpanda/nfshare/fragments/ReceiveFrag.java

+41-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import android.content.BroadcastReceiver;
55
import android.content.Context;
66
import android.content.IntentFilter;
7-
import android.graphics.Color;
87
import android.net.wifi.WpsInfo;
98
import android.net.wifi.p2p.WifiP2pConfig;
109
import android.net.wifi.p2p.WifiP2pDevice;
@@ -13,6 +12,8 @@
1312
import android.net.wifi.p2p.WifiP2pManager;
1413
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
1514
import android.os.Bundle;
15+
import android.os.Handler;
16+
import android.os.Message;
1617
import android.support.v4.app.Fragment;
1718
import android.support.v4.content.ContextCompat;
1819
import android.support.v4.widget.DrawerLayout;
@@ -28,14 +29,11 @@
2829
import android.widget.Toast;
2930

3031
import com.alibaba.fastjson.JSON;
31-
import com.clverpanda.nfshare.MainActivity;
3232
import com.clverpanda.nfshare.NFShareApplication;
3333
import com.clverpanda.nfshare.R;
3434
import com.clverpanda.nfshare.WIFISendActivity;
3535
import com.clverpanda.nfshare.dao.DaoSession;
36-
import com.clverpanda.nfshare.dao.Device;
3736
import com.clverpanda.nfshare.dao.Task;
38-
import com.clverpanda.nfshare.model.DataType;
3937
import com.clverpanda.nfshare.model.FileInfo;
4038
import com.clverpanda.nfshare.model.TaskStatus;
4139
import com.clverpanda.nfshare.model.TransferData;
@@ -60,6 +58,8 @@
6058
import java.util.HashMap;
6159
import java.util.List;
6260
import java.util.Map;
61+
import java.util.Timer;
62+
import java.util.TimerTask;
6363
import java.util.concurrent.TimeUnit;
6464

6565
import butterknife.BindView;
@@ -105,7 +105,34 @@ public class ReceiveFrag extends Fragment
105105
SweetAlertDialog pDialog;
106106
GetShareRec getShareRec = null;
107107

108+
private static final int REPORT_ERR2SERVER_DONE = 1024;
109+
private boolean isGetFromWifiDirect = false;
110+
private Timer timer = new Timer();
111+
private TimerTask getFromWifiOverTimeTask = new TimerTask()
112+
{
113+
@Override
114+
public void run()
115+
{
116+
if (!isGetFromWifiDirect)
117+
{
118+
mManager.stopPeerDiscovery(mChannel, null);
119+
reportConnErr2Server();
120+
Message message = new Message();
121+
message.what = REPORT_ERR2SERVER_DONE;
122+
handler.sendMessage(message);
123+
}
124+
}
125+
};
126+
108127

128+
Handler handler = new Handler() {
129+
public void handleMessage(Message msg) {
130+
if (msg.what == REPORT_ERR2SERVER_DONE)
131+
{
132+
reportConnErr2ServerDone();
133+
}
134+
}
135+
};
109136

110137
public ReceiveFrag() { }
111138

@@ -208,6 +235,7 @@ public void onDataReceivedFailed()
208235

209236
private void tryGetFromWifiDirect()
210237
{
238+
isGetFromWifiDirect = false;
211239
mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener()
212240
{
213241
@Override
@@ -221,6 +249,7 @@ public void onFailure(int reasonCode)
221249
confirmReportConnErr2Server();
222250
}
223251
});
252+
timer.schedule(getFromWifiOverTimeTask, 10000);
224253
}
225254

226255

@@ -240,6 +269,7 @@ public void onPeersAvailable(WifiP2pDeviceList peerList)
240269
{
241270
if (item.deviceAddress.equals(getShareRec.getOrigin_phone()))
242271
{
272+
isGetFromWifiDirect = true;
243273
connect(item);
244274
return;
245275
}
@@ -289,13 +319,20 @@ public void run()
289319
}
290320
else
291321
Log.d(TAG, "服务器:回调失败");
322+
getShareRec = null;
292323
}
293324
catch (IOException e)
294325
{
295326
Log.e(TAG, "服务器:回调失败", e);
327+
getShareRec = null;
296328
}
297329
}
298330
}).start();
331+
reportConnErr2ServerDone();
332+
}
333+
334+
private void reportConnErr2ServerDone()
335+
{
299336
Toast.makeText(getContext(), "无法找到对方,已向服务器汇报", Toast.LENGTH_SHORT).show();
300337
pDialog.cancel();
301338
}

0 commit comments

Comments
 (0)