1919package org .csploit .android .plugins .mitm ;
2020
2121import android .content .Context ;
22+ import android .content .Intent ;
2223import android .content .SharedPreferences ;
2324import android .os .Bundle ;
2425import android .support .v7 .app .AppCompatActivity ;
2526import android .text .Html ;
2627import android .view .LayoutInflater ;
2728import android .view .MenuItem ;
2829import android .view .View ;
29- import android .view .View .OnClickListener ;
3030import android .view .ViewGroup ;
3131import android .widget .AdapterView ;
3232import android .widget .AdapterView .OnItemSelectedListener ;
3838import android .widget .Toast ;
3939import android .widget .ToggleButton ;
4040
41+ import org .csploit .android .ActionActivity ;
4142import org .csploit .android .R ;
4243import org .csploit .android .core .Child ;
4344import org .csploit .android .core .ChildManager ;
4445import org .csploit .android .core .System ;
4546import org .csploit .android .gui .dialogs .ConfirmDialog ;
46- import org .csploit .android .gui .dialogs .ConfirmDialog .ConfirmDialogListener ;
4747import org .csploit .android .gui .dialogs .ErrorDialog ;
4848import org .csploit .android .net .Target ;
4949import org .csploit .android .plugins .mitm .SpoofSession .OnSessionReadyListener ;
@@ -307,7 +307,43 @@ public void onNothingSelected(AdapterView<?> arg0){
307307
308308 mListView .setAdapter (mAdapter );
309309
310- mSniffToggleButton .setOnClickListener (new OnClickListener (){
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+ });
345+
346+ mSniffToggleButton .setOnClickListener (new View .OnClickListener (){
311347 @ Override
312348 public void onClick (View v ){
313349 if (mRunning ){
@@ -319,7 +355,7 @@ public void onClick(View v){
319355 }
320356 );
321357
322- new ConfirmDialog ( getString (R .string .file_output ), getString (R .string .question_save_to_pcap ), this , new ConfirmDialogListener (){
358+ new ConfirmDialog ( getString (R .string .file_output ), getString (R .string .question_save_to_pcap ), this , new ConfirmDialog . ConfirmDialogListener (){
323359 @ Override
324360 public void onConfirm (){
325361 mDumpToFile = true ;
@@ -357,15 +393,20 @@ private void setStoppedState(){
357393 mTcpdumpProcess .kill ();
358394 mTcpdumpProcess = null ;
359395 }
360- mSpoofSession .stop ();
396+ Sniffer .this .runOnUiThread (new Runnable () {
397+ @ Override
398+ public void run () {
399+ mSpoofSession .stop ();
361400
362- mSniffProgress .setVisibility (View .INVISIBLE );
401+ mSniffProgress .setVisibility (View .INVISIBLE );
363402
364- mRunning = false ;
365- mSniffToggleButton .setChecked (false );
366- }
403+ mRunning = false ;
404+ mSniffToggleButton .setChecked (false );
405+ }
406+ });
407+ }
367408
368- private void setSpoofErrorState (final String error ){
409+ private void setSpoofErrorState (final String error ){
369410 Sniffer .this .runOnUiThread (new Runnable (){
370411 @ Override
371412 public void run (){
0 commit comments