| | | |
Offset 19, 60 lines modified | Offset 19, 64 lines modified |
19 | import·android.util.Log; | 19 | import·android.util.Log; |
20 | import·android.net.ip.IpServer; | 20 | import·android.net.ip.IpServer; |
21 | import·android.os.Looper; | 21 | import·android.os.Looper; |
22 | import·java.util.ArrayList; | 22 | import·java.util.ArrayList; |
23 | import·com.android.networkstack.tethering.util.State; | 23 | import·com.android.networkstack.tethering.util.State; |
24 | import·com.android.networkstack.tethering.util.StateMachine; | 24 | import·com.android.networkstack.tethering.util.StateMachine; |
| |
25 | class·Tethering$TetherMainSM·extends·StateMachine | 25 | class·Tethering$TetherMasterSM·extends·StateMachine |
26 | { | 26 | { |
27 | ····static·final·int·CMD_CLEAR_ERROR·=·6; | 27 | ····static·final·int·CMD_CLEAR_ERROR·=·6; |
28 | ····static·final·int·CMD_RETRY_UPSTREAM·=·4; | 28 | ····static·final·int·CMD_RETRY_UPSTREAM·=·4; |
29 | ····static·final·int·CMD_UPSTREAM_CHANGED·=·3; | 29 | ····static·final·int·CMD_UPSTREAM_CHANGED·=·3; |
30 | ····static·final·int·EVENT_IFACE_SERVING_STATE_ACTIVE·=·1; | 30 | ····static·final·int·EVENT_IFACE_SERVING_STATE_ACTIVE·=·1; |
31 | ····static·final·int·EVENT_IFACE_SERVING_STATE_INACTIVE·=·2; | 31 | ····static·final·int·EVENT_IFACE_SERVING_STATE_INACTIVE·=·2; |
32 | ····static·final·int·EVENT_IFACE_UPDATE_LINKPROPERTIES·=·7; | 32 | ····static·final·int·EVENT_IFACE_UPDATE_LINKPROPERTIES·=·7; |
33 | ····static·final·int·EVENT_UPSTREAM_CALLBACK·=·5; | 33 | ····static·final·int·EVENT_UPSTREAM_CALLBACK·=·5; |
34 | ····static·final·int·EVENT_UPSTREAM_PERMISSION_CHANGED·=·8; | 34 | ····static·final·int·EVENT_UPSTREAM_PERMISSION_CHANGED·=·8; |
35 | ····private·final·IPv6TetheringCoordinator·mIPv6TetheringCoordinator; | 35 | ····private·final·IPv6TetheringCoordinator·mIPv6TetheringCoordinator; |
36 | ····private·final·State·mInitialState; | 36 | ····private·final·State·mInitialState; |
37 | ····private·final·ArrayList·mNotifyList; | 37 | ····private·final·ArrayList·mNotifyList; |
38 | ····private·final·Tethering$TetherMainSM$OffloadWrapper·mOffload; | 38 | ····private·final·Tethering$TetherMasterSM$OffloadWrapper·mOffload; |
39 | ····private·final·State·mSetDnsForwardersErrorState; | 39 | ····private·final·State·mSetDnsForwardersErrorState; |
40 | ····private·final·State·mSetIpForwardingDisabledErrorState; | 40 | ····private·final·State·mSetIpForwardingDisabledErrorState; |
41 | ····private·final·State·mSetIpForwardingEnabledErrorState; | 41 | ····private·final·State·mSetIpForwardingEnabledErrorState; |
42 | ····private·final·State·mStartTetheringErrorState; | 42 | ····private·final·State·mStartTetheringErrorState; |
43 | ····private·final·State·mStopTetheringErrorState; | 43 | ····private·final·State·mStopTetheringErrorState; |
44 | ····private·final·State·mTetherModeAliveState; | 44 | ····private·final·State·mTetherModeAliveState; |
45 | ····final·/*·synthetic·*/·Tethering·this$0; | 45 | ····final·/*·synthetic·*/·Tethering·this$0; |
46 | ···· | 46 | ···· |
47 | ····Tethering$TetherMainSM(final·Tethering·this$0,·final·String·s,·final·Looper·looper,·final·TetheringDependencies·tetheringDependencies)·{ | 47 | ····Tethering$TetherMasterSM(final·Tethering·this$0,·final·String·s,·final·Looper·looper,·final·TetheringDependencies·tetheringDependencies)·{ |
48 | ········this.this$0·=·this$0; | 48 | ········this.this$0·=·this$0; |
49 | ········super(s,·looper); | 49 | ········super(s,·looper); |
50 | ········this.mInitialState·=·(State)new·Tethering$TetherMainSM$InitialState(this); | 50 | ········this.mInitialState·=·(State)new·Tethering$TetherMasterSM$InitialState(this); |
51 | ········this.mTetherModeAliveState·=·(State)new·Tethering$TetherMainSM$TetherModeAliveState(this); | 51 | ········this.mTetherModeAliveState·=·(State)new·Tethering$TetherMasterSM$TetherModeAliveState(this); |
52 | ········this.mSetIpForwardingEnabledErrorState·=·(State)new·Tethering$TetherMainSM$SetIpForwardingEnabledErrorState(this); | 52 | ········this.mSetIpForwardingEnabledErrorState·=·(State)new·Tethering$TetherMasterSM$SetIpForwardingEnabledErrorState(this); |
53 | ········this.mSetIpForwardingDisabledErrorState·=·(State)new·Tethering$TetherMainSM$SetIpForwardingDisabledErrorState(this); | 53 | ········this.mSetIpForwardingDisabledErrorState·=·(State)new·Tethering$TetherMasterSM$SetIpForwardingDisabledErrorState(this); |
54 | ········this.mStartTetheringErrorState·=·(State)new·Tethering$TetherMainSM$StartTetheringErrorState(this); | 54 | ········this.mStartTetheringErrorState·=·(State)new·Tethering$TetherMasterSM$StartTetheringErrorState(this); |
55 | ········this.mStopTetheringErrorState·=·(State)new·Tethering$TetherMainSM$StopTetheringErrorState(this); | 55 | ········this.mStopTetheringErrorState·=·(State)new·Tethering$TetherMasterSM$StopTetheringErrorState(this); |
56 | ········this.mSetDnsForwardersErrorState·=·(State)new·Tethering$TetherMainSM$SetDnsForwardersErrorState(this); | 56 | ········this.mSetDnsForwardersErrorState·=·(State)new·Tethering$TetherMasterSM$SetDnsForwardersErrorState(this); |
57 | ········this.addState(this.mInitialState); | 57 | ········this.addState(this.mInitialState); |
58 | ········this.addState(this.mTetherModeAliveState); | 58 | ········this.addState(this.mTetherModeAliveState); |
59 | ········this.addState(this.mSetIpForwardingEnabledErrorState); | 59 | ········this.addState(this.mSetIpForwardingEnabledErrorState); |
60 | ········this.addState(this.mSetIpForwardingDisabledErrorState); | 60 | ········this.addState(this.mSetIpForwardingDisabledErrorState); |
61 | ········this.addState(this.mStartTetheringErrorState); | 61 | ········this.addState(this.mStartTetheringErrorState); |
62 | ········this.addState(this.mStopTetheringErrorState); | 62 | ········this.addState(this.mStopTetheringErrorState); |
63 | ········this.addState(this.mSetDnsForwardersErrorState); | 63 | ········this.addState(this.mSetDnsForwardersErrorState); |
64 | ········final·ArrayList·mNotifyList·=·new·ArrayList(); | 64 | ········final·ArrayList·mNotifyList·=·new·ArrayList(); |
65 | ········this.mNotifyList·=·mNotifyList; | 65 | ········this.mNotifyList·=·mNotifyList; |
66 | ········this.mIPv6TetheringCoordinator·=·tetheringDependencies.getIPv6TetheringCoordinator(mNotifyList,·Tethering.access$600(this$0)); | 66 | ········this.mIPv6TetheringCoordinator·=·tetheringDependencies.getIPv6TetheringCoordinator(mNotifyList,·Tethering.access$600(this$0)); |
67 | ········this.mOffload·=·new·Tethering$TetherMainSM$OffloadWrapper(this); | 67 | ········this.mOffload·=·new·Tethering$TetherMasterSM$OffloadWrapper(this); |
68 | ········this.setInitialState(this.mInitialState); | 68 | ········this.setInitialState(this.mInitialState); |
69 | ····} | 69 | ····} |
70 | ···· | 70 | ···· |
| 71 | ····private·void·addUpstreamPrefixes(final·UpstreamNetworkState·upstreamNetworkState)·{ |
| 72 | ········Tethering.access$4300(this.this$0).updateUpstreamPrefix(upstreamNetworkState.network,·upstreamNetworkState.linkProperties); |
| 73 | ····} |
| 74 | ···· |
71 | ····private·void·handleInterfaceServingStateActive(int·i,·final·IpServer·ipServer)·{ | 75 | ····private·void·handleInterfaceServingStateActive(int·i,·final·IpServer·ipServer)·{ |
72 | ········if·(this.mNotifyList.indexOf(ipServer)·<·0)·{ | 76 | ········if·(this.mNotifyList.indexOf(ipServer)·<·0)·{ |
73 | ············this.mNotifyList.add(ipServer); | 77 | ············this.mNotifyList.add(ipServer); |
74 | ············this.mIPv6TetheringCoordinator.addActiveDownstream(ipServer,·i); | 78 | ············this.mIPv6TetheringCoordinator.addActiveDownstream(ipServer,·i); |
75 | ········} | 79 | ········} |
76 | ········final·int·n·=·2; | 80 | ········final·int·n·=·2; |
77 | ········if·(i·==·n)·{ | 81 | ········if·(i·==·n)·{ |
Offset 116, 14 lines modified | Offset 120, 18 lines modified |
116 | ············} | 120 | ············} |
117 | ············else·{ | 121 | ············else·{ |
118 | ················Tethering.access$4200(this.this$0).updateInterfaceIpState(ipServer.interfaceName(),·-1); | 122 | ················Tethering.access$4200(this.this$0).updateInterfaceIpState(ipServer.interfaceName(),·-1); |
119 | ············} | 123 | ············} |
120 | ········} | 124 | ········} |
121 | ····} | 125 | ····} |
122 | ···· | 126 | ···· |
| 127 | ····private·void·removeUpstreamPrefixes(final·UpstreamNetworkState·upstreamNetworkState)·{ |
| 128 | ········Tethering.access$4300(this.this$0).removeUpstreamPrefix(upstreamNetworkState.network); |
| 129 | ····} |
| 130 | ···· |
123 | ····protected·void·chooseUpstreamType(final·boolean·b)·{ | 131 | ····protected·void·chooseUpstreamType(final·boolean·b)·{ |
124 | ········Tethering.access$3500(this.this$0); | 132 | ········Tethering.access$3500(this.this$0); |
125 | ········final·TetheringConfiguration·access$000·=·Tethering.access$000(this.this$0); | 133 | ········final·TetheringConfiguration·access$000·=·Tethering.access$000(this.this$0); |
126 | ········UpstreamNetworkState·upstreamNetwork; | 134 | ········UpstreamNetworkState·upstreamNetwork; |
127 | ········if·(access$000.chooseUpstreamAutomatically)·{ | 135 | ········if·(access$000.chooseUpstreamAutomatically)·{ |
128 | ············upstreamNetwork·=·Tethering.access$3600(this.this$0).getCurrentPreferredUpstream(); | 136 | ············upstreamNetwork·=·Tethering.access$3600(this.this$0).getCurrentPreferredUpstream(); |
129 | ········} | 137 | ········} |
Offset 164, 19 lines modified | Offset 172, 19 lines modified |
164 | ············return; | 172 | ············return; |
165 | ········} | 173 | ········} |
166 | ········final·UpstreamNetworkState·upstreamNetworkState·=·(UpstreamNetworkState)o; | 174 | ········final·UpstreamNetworkState·upstreamNetworkState·=·(UpstreamNetworkState)o; |
167 | ········final·int·n·=·3; | 175 | ········final·int·n·=·3; |
168 | ········final·int·n2·=·2; | 176 | ········final·int·n2·=·2; |
169 | ········if·(equals·!=·n2)·{ | 177 | ········if·(equals·!=·n2)·{ |
170 | ············if·(equals·==·n)·{ | 178 | ············if·(equals·==·n)·{ |
171 | ················Tethering.access$4300(this.this$0).removeUpstreamPrefix(upstreamNetworkState.network); | 179 | ················this.removeUpstreamPrefixes(upstreamNetworkState); |
172 | ············} | 180 | ············} |
173 | ········} | 181 | ········} |
174 | ········else·{ | 182 | ········else·{ |
175 | ············Tethering.access$4300(this.this$0).updateUpstreamPrefix(upstreamNetworkState); | 183 | ············this.addUpstreamPrefixes(upstreamNetworkState); |
176 | ········} | 184 | ········} |
177 | ········if·(upstreamNetworkState·!=·null·&&·Tethering.access$3900(this.this$0,·upstreamNetworkState))·{ | 185 | ········if·(upstreamNetworkState·!=·null·&&·Tethering.access$3900(this.this$0,·upstreamNetworkState))·{ |
178 | ············if·(equals·!=·1)·{ | 186 | ············if·(equals·!=·1)·{ |
179 | ················if·(equals·!=·n2)·{ | 187 | ················if·(equals·!=·n2)·{ |
180 | ····················if·(equals·!=·n)·{ | 188 | ····················if·(equals·!=·n)·{ |
181 | ························final·SharedLog·access$600·=·Tethering.access$600(this.this$0); | 189 | ························final·SharedLog·access$600·=·Tethering.access$600(this.this$0); |
182 | ························o·=·new·StringBuilder(); | 190 | ························o·=·new·StringBuilder(); |
Offset 299, 29 lines modified | Offset 307, 29 lines modified |
299 | ············this.handleNewUpstreamNetworkState(upstreamNetworkState); | 307 | ············this.handleNewUpstreamNetworkState(upstreamNetworkState); |
300 | ········} | 308 | ········} |
301 | ········else·if·(Tethering.access$4000(this.this$0)·==·null)·{ | 309 | ········else·if·(Tethering.access$4000(this.this$0)·==·null)·{ |
302 | ············this.handleNewUpstreamNetworkState(null); | 310 | ············this.handleNewUpstreamNetworkState(null); |
303 | ········} | 311 | ········} |
304 | ····} | 312 | ····} |
305 | ···· | 313 | ···· |
306 | ····protected·boolean·turnOffMainTetherSettings()·{ | 314 | ····protected·boolean·turnOffMasterTetherSettings()·{ |
307 | ········try·{ | 315 | ········try·{ |
308 | ············final·Tethering·this$0·=·this.this$0; | 316 | ············final·Tethering·this$0·=·this.this$0; |
309 | ············try·{ | 317 | ············try·{ |
310 | ················final·INetd·access$400·=·Tethering.access$400(this$0); | 318 | ················final·INetd·access$400·=·Tethering.access$400(this$0); |
311 | ················try·{ | 319 | ················try·{ |
312 | ····················access$400.tetherStop(); | 320 | ····················access$400.tetherStop(); |
313 | ····················try·{ | 321 | ····················try·{ |
314 | ························final·Tethering·this$2·=·this.this$0; | 322 | ························final·Tethering·this$2·=·this.this$0; |
315 | ························try·{ | 323 | ························try·{ |
316 | ····························final·INetd·access$401·=·Tethering.access$400(this$2); | 324 | ····························final·INetd·access$401·=·Tethering.access$400(this$2); |
317 | ····························try·{ | 325 | ····························try·{ |
318 | ································access$401.ipfwdDisableForwarding(Tethering.access$3400()); | 326 | ································access$401.ipfwdDisableForwarding(Tethering.access$3400()); |
319 | ································this.transitionTo((IState)this.mInitialState); | 327 | ································this.transitionTo((IState)this.mInitialState); |
320 | ································Tethering.access$600(this.this$0).log("SET·main·tether·settings:·OFF"); | 328 | ································Tethering.access$600(this.this$0).log("SET·master·tether·settings:·OFF"); |
321 | ································return·true; | 329 | ································return·true; |
322 | ····························} | 330 | ····························} |
323 | ····························catch·(RemoteException·|·ServiceSpecificException·ex3)·{ | 331 | ····························catch·(RemoteException·|·ServiceSpecificException·ex3)·{ |
324 | ································final·Exception·ex; | 332 | ································final·Exception·ex; |
325 | ································Tethering.access$600(this.this$0).e(ex); | 333 | ································Tethering.access$600(this.this$0).e(ex); |
326 | ································this.transitionTo((IState)this.mSetIpForwardingDisabledErrorState); | 334 | ································this.transitionTo((IState)this.mSetIpForwardingDisabledErrorState); |
327 | ································return·false; | 335 | ································return·false; |
Offset 343, 15 lines modified | Offset 351, 15 lines modified |
343 | ············catch·(RemoteException·ex9)·{} | 351 | ············catch·(RemoteException·ex9)·{} |
344 | ············catch·(ServiceSpecificException·ex10)·{} | 352 | ············catch·(ServiceSpecificException·ex10)·{} |
345 | ········} | 353 | ········} |
346 | ········catch·(RemoteException·ex11)·{} | 354 | ········catch·(RemoteException·ex11)·{} |
347 | ········catch·(ServiceSpecificException·ex12)·{} | 355 | ········catch·(ServiceSpecificException·ex12)·{} |
348 | ····} | 356 | ····} |
349 | ···· | 357 | ···· |
350 | ····protected·boolean·turnOnMainTetherSettings()·{ | 358 | ····protected·boolean·turnOnMasterTetherSettings()·{ |
351 | ········final·TetheringConfiguration·access$000·=·Tethering.access$000(this.this$0); | 359 | ········final·TetheringConfiguration·access$000·=·Tethering.access$000(this.this$0); |
352 | ········try·{ | 360 | ········try·{ |
353 | ············final·Tethering·this$0·=·this.this$0; | 361 | ············final·Tethering·this$0·=·this.this$0; |
354 | ············try·{ | 362 | ············try·{ |
355 | ················final·INetd·access$2·=·Tethering.access$400(this$0); | 363 | ················final·INetd·access$2·=·Tethering.access$400(this$0); |
356 | ················try·{ | 364 | ················try·{ |
357 | ····················access$2.ipfwdEnableForwarding(Tethering.access$3400()); | 365 | ····················access$2.ipfwdEnableForwarding(Tethering.access$3400()); |
Offset 365, 57 lines modified | Offset 373, 57 lines modified |
365 | ····················final·boolean·b·=·true; | 373 | ····················final·boolean·b·=·true; |
366 | ····················try·{ | 374 | ····················try·{ |
367 | ························final·Tethering·this$2·=·this.this$0; | 375 | ························final·Tethering·this$2·=·this.this$0; |
368 | ························try·{ | 376 | ························try·{ |
369 | ····························NetdUtils.tetherStart(Tethering.access$400(this$2),·b,·legacyDhcpRanges); | 377 | ····························NetdUtils.tetherStart(Tethering.access$400(this$2),·b,·legacyDhcpRanges); |
370 | ························} | 378 | ························} |
371 | ························catch·(RemoteException·|·ServiceSpecificException·ex3)·{ | 379 | ························catch·(RemoteException·|·ServiceSpecificException·ex3)·{ |
372 | ····························final·Tethering$TetherMainSM·tethering$TetherMainSM·=·this; | 380 | ····························final·Tethering$TetherMasterSM·tethering$TetherMasterSM·=·this; |
373 | ····························final·Tethering·this$3·=·tethering$TetherMainSM.this$0; | 381 | ····························final·Tethering·this$3·=·tethering$TetherMasterSM.this$0; |
374 | ····························final·Tethering·tethering; | 382 | ····························final·Tethering·tethering; |
375 | ····························final·Tethering·this$4·=·tethering·=·this$3; | 383 | ····························final·Tethering·this$4·=·tethering·=·this$3; |
376 | ····························final·INetd·access$3·=·Tethering.access$400(tethering); | 384 | ····························final·INetd·access$3·=·Tethering.access$400(tethering); |
377 | ····························final·INetd·netd; | 385 | ····························final·INetd·netd; |
378 | ····························final·INetd·access$4·=·netd·=·access$3; | 386 | ····························final·INetd·access$4·=·netd·=·access$3; |
379 | ····························netd.tetherStop(); | 387 | ····························netd.tetherStop(); |
380 | ····························final·Tethering$TetherMainSM·tethering$TetherMainSM2·=·this; | 388 | ····························final·Tethering$TetherMasterSM·tethering$TetherMasterSM2·=·this; |
381 | ····························final·Tethering·this$5·=·tethering$TetherMainSM2.this$0; | 389 | ····························final·Tethering·this$5·=·tethering$TetherMasterSM2.this$0; |
382 | ····························final·Tethering·tethering2; | 390 | ····························final·Tethering·tethering2; |
383 | ····························final·Tethering·this$6·=·tethering2·=·this$5; | 391 | ····························final·Tethering·this$6·=·tethering2·=·this$5; |
384 | ····························final·INetd·access$5·=·Tethering.access$400(tethering2); | 392 | ····························final·INetd·access$5·=·Tethering.access$400(tethering2); |
385 | ····························final·INetd·access$6·=·access$5; | 393 | ····························final·INetd·access$6·=·access$5; |
386 | ····························final·boolean·b2·=·b; | 394 | ····························final·boolean·b2·=·b; |
387 | ····························final·String[]·array·=·legacyDhcpRanges; | 395 | ····························final·String[]·array·=·legacyDhcpRanges; |
388 | ····························NetdUtils.tetherStart(access$6,·b2,·array); | 396 | ····························NetdUtils.tetherStart(access$6,·b2,·array); |
389 | ························} | 397 | ························} |
390 | ····················} | 398 | ····················} |
391 | ····················catch·(RemoteException·ex4)·{} | 399 | ····················catch·(RemoteException·ex4)·{} |
392 | ····················catch·(ServiceSpecificException·ex5)·{} | 400 | ····················catch·(ServiceSpecificException·ex5)·{} |
393 | ····················try·{ | 401 | ····················try·{ |
394 | ························final·Tethering$TetherMainSM·tethering$TetherMainSM·=·this; | 402 | ························final·Tethering$TetherMasterSM·tethering$TetherMasterSM·=·this; |
395 | ························final·Tethering·this$4; | 403 | ························final·Tethering·this$4; |
396 | ························final·Tethering·this$3·=·this$4·=·tethering$TetherMainSM.this$0; | 404 | ························final·Tethering·this$3·=·this$4·=·tethering$TetherMasterSM.this$0; |
397 | ························try·{ | 405 | ························try·{ |
398 | ····························final·Tethering·tethering·=·this$4; | 406 | ····························final·Tethering·tethering·=·this$4; |
399 | ····························final·INetd·access$4; | 407 | ····························final·INetd·access$4; |
400 | ····························final·INetd·access$3·=·access$4·=·Tethering.access$400(tethering); | 408 | ····························final·INetd·access$3·=·access$4·=·Tethering.access$400(tethering); |
401 | ····························try·{ | 409 | ····························try·{ |
402 | ································final·INetd·netd·=·access$4; | 410 | ································final·INetd·netd·=·access$4; |
403 | ································netd.tetherStop(); | 411 | ································netd.tetherStop(); |
404 | ································final·Tethering$TetherMainSM·tethering$TetherMainSM2·=·this; | 412 | ································final·Tethering$TetherMasterSM·tethering$TetherMasterSM2·=·this; |
405 | ································final·Tethering·this$6; | 413 | ································final·Tethering·this$6; |
406 | ································final·Tethering·this$5·=·this$6·=·tethering$TetherMainSM2.this$0; | 414 | ································final·Tethering·this$5·=·this$6·=·tethering$TetherMasterSM2.this$0; |
407 | ································try·{ | 415 | ································try·{ |
408 | ····································final·Tethering·tethering2·=·this$6; | 416 | ····································final·Tethering·tethering2·=·this$6; |
409 | ····································final·INetd·access$6; | 417 | ····································final·INetd·access$6; |
410 | ····································final·INetd·access$5·=·access$6·=·Tethering.access$400(tethering2); | 418 | ····································final·INetd·access$5·=·access$6·=·Tethering.access$400(tethering2); |
411 | ····································final·boolean·b2·=·b; | 419 | ····································final·boolean·b2·=·b; |
412 | ····································final·String[]·array·=·legacyDhcpRanges; | 420 | ····································final·String[]·array·=·legacyDhcpRanges; |
413 | ····································NetdUtils.tetherStart(access$6,·b2,·array); | 421 | ····································NetdUtils.tetherStart(access$6,·b2,·array); |
414 | ····································Tethering.access$600(this.this$0).log("SET·main·tether·settings:·ON"); | 422 | ····································Tethering.access$600(this.this$0).log("SET·master·tether·settings:·ON"); |
415 | ····································return·b; | 423 | ····································return·b; |
416 | ································} | 424 | ································} |
417 | ································catch·(RemoteException·|·ServiceSpecificException·ex6)·{ | 425 | ································catch·(RemoteException·|·ServiceSpecificException·ex6)·{ |
418 | ····································final·Exception·ex; | 426 | ····································final·Exception·ex; |
419 | ····································Tethering.access$600(this.this$0).e(ex); | 427 | ····································Tethering.access$600(this.this$0).e(ex); |
420 | ····································this.transitionTo((IState)this.mStartTetheringErrorState); | 428 | ····································this.transitionTo((IState)this.mStartTetheringErrorState); |
421 | ····································return·false; | 429 | ····································return·false; |