|
54 | 54 | import java.util.ArrayList; |
55 | 55 | import java.util.Collections; |
56 | 56 |
|
57 | | -public class Sniffer extends AppCompatActivity |
| 57 | +public class Sniffer extends AppCompatActivity implements AdapterView.OnItemClickListener |
58 | 58 | { |
59 | 59 | private static final String[] SORT = { |
60 | 60 | "Bandwidth ↓", |
@@ -296,52 +296,18 @@ public void onCreate(Bundle savedInstanceState){ |
296 | 296 | mSpoofSession = new SpoofSession(false, false, null, null); |
297 | 297 |
|
298 | 298 | mSortSpinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, SORT)); |
299 | | - mSortSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ |
300 | | - public void onItemSelected(AdapterView<?> adapter, View view, int position, long id){ |
| 299 | + mSortSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { |
| 300 | + public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) { |
301 | 301 | mSortType = position; |
302 | 302 | } |
303 | 303 |
|
304 | | - public void onNothingSelected(AdapterView<?> arg0){ |
| 304 | + public void onNothingSelected(AdapterView<?> arg0) { |
305 | 305 | } |
306 | 306 | }); |
307 | 307 |
|
308 | 308 | mListView.setAdapter(mAdapter); |
309 | 309 |
|
310 | | - mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { |
311 | | - @Override |
312 | | - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
313 | | - final Target t = System.getTargetByAddress(mAdapter.getByPosition(position).mAddress); |
314 | | - |
315 | | - new ConfirmDialog("Select target", "Select " + t.getAddress().getHostAddress() + "?", Sniffer.this, new ConfirmDialog.ConfirmDialogListener() { |
316 | | - @Override |
317 | | - public void onConfirm() { |
318 | | - new Thread(new Runnable() { |
319 | | - @Override |
320 | | - public void run() { |
321 | | - setStoppedState(); |
322 | | - |
323 | | - startActivity(new Intent(Sniffer.this, |
324 | | - ActionActivity.class)); |
325 | | - |
326 | | - overridePendingTransition(R.anim.slide_in_left, |
327 | | - R.anim.slide_out_left); |
328 | | - } |
329 | | - }).start(); |
330 | | - |
331 | | - System.setCurrentTarget(System.getTargetPosition(t)); |
332 | | - Toast.makeText(Sniffer.this, |
333 | | - getString(R.string.selected_) + System.getCurrentTarget(), |
334 | | - Toast.LENGTH_SHORT).show(); |
335 | | - } |
336 | | - |
337 | | - @Override |
338 | | - public void onCancel() { |
339 | | - } |
340 | | - }).show(); |
341 | | - |
342 | | - |
343 | | - } |
344 | | - }); |
| 310 | + mListView.setOnItemClickListener(this); |
345 | 311 |
|
346 | 312 | mSniffToggleButton.setOnClickListener(new View.OnClickListener(){ |
347 | 313 | @Override |
@@ -370,6 +336,40 @@ public void onCancel(){ |
370 | 336 | }).show(); |
371 | 337 | } |
372 | 338 |
|
| 339 | + @Override |
| 340 | + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
| 341 | + String address = mAdapter.getByPosition(position).mAddress; |
| 342 | + final Target t = System.getTargetByAddress(address); |
| 343 | + |
| 344 | + if (t == null) |
| 345 | + return; |
| 346 | + |
| 347 | + new ConfirmDialog(getString(R.string.mitm_ss_select_target_title), |
| 348 | + String.format(getString(R.string.mitm_ss_select_target_prompt), address), |
| 349 | + Sniffer.this, new ConfirmDialog.ConfirmDialogListener() { |
| 350 | + @Override |
| 351 | + public void onConfirm() { |
| 352 | + System.setCurrentTarget(t); |
| 353 | + |
| 354 | + setStoppedState(); |
| 355 | + |
| 356 | + Toast.makeText(Sniffer.this, |
| 357 | + getString(R.string.selected_) + System.getCurrentTarget(), |
| 358 | + Toast.LENGTH_SHORT).show(); |
| 359 | + |
| 360 | + startActivity(new Intent(Sniffer.this, |
| 361 | + ActionActivity.class)); |
| 362 | + |
| 363 | + overridePendingTransition(R.anim.slide_in_left, |
| 364 | + R.anim.slide_out_left); |
| 365 | + } |
| 366 | + |
| 367 | + @Override |
| 368 | + public void onCancel() { |
| 369 | + } |
| 370 | + }).show(); |
| 371 | + } |
| 372 | + |
373 | 373 | public synchronized int getSortType(){ |
374 | 374 | return mSortType; |
375 | 375 | } |
@@ -404,9 +404,9 @@ public void run() { |
404 | 404 | mSniffToggleButton.setChecked(false); |
405 | 405 | } |
406 | 406 | }); |
407 | | - } |
| 407 | + } |
408 | 408 |
|
409 | | - private void setSpoofErrorState(final String error){ |
| 409 | + private void setSpoofErrorState(final String error){ |
410 | 410 | Sniffer.this.runOnUiThread(new Runnable(){ |
411 | 411 | @Override |
412 | 412 | public void run(){ |
|
0 commit comments