package de.tudarmstadt.informatik.hostage.ui2.fragment; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.Switch; import android.widget.TextView; import java.util.ArrayList; import de.tudarmstadt.informatik.hostage.HoneyService; import de.tudarmstadt.informatik.hostage.R; import de.tudarmstadt.informatik.hostage.commons.HelperUtils; import de.tudarmstadt.informatik.hostage.protocol.FTP; import de.tudarmstadt.informatik.hostage.ui2.adapter.ServicesListAdapter; import de.tudarmstadt.informatik.hostage.ui2.model.ServicesListItem; import static de.tudarmstadt.informatik.hostage.HoneyService.*; /** * Created by Daniel Lazar on 05.02.14. */ public class ServicesFragment extends Fragment{ private Switch mServicesSwitchService; private TextView mServicesTextName; private View rootView; private CompoundButton.OnCheckedChangeListener switchChangeListener = null; private void assignViews(){ mServicesSwitchService = (Switch) rootView.findViewById(R.id.service_switch_connection); mServicesTextName = (TextView) rootView.findViewById(R.id.services_text_name); } public void updateUI(){ if(!HelperUtils.isWifiConnected(getActivity())){ mServicesSwitchService.setOnCheckedChangeListener(null); setStateNotConnected(); setStateNotActive(); mServicesSwitchService.setOnCheckedChangeListener(switchChangeListener); } else { mServicesTextName.setText(HelperUtils.getSSID(getActivity())); } /* //check if ftp monitoring is running if(!HoneyService.isRunning(protocols[1])){ mServicesSwitchFTP.setOnCheckedChangeListener(null); } else { mServicesSwitchFTP.setChecked(true); }*/ } public ServicesFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ super.onCreateView(inflater, container, savedInstanceState); rootView = inflater.inflate(R.layout.fragment_services, container, false); assignViews(); updateUI(); ListView list = (ListView) rootView.findViewById(R.id.services_list_view); String[] protocols = getResources().getStringArray(R.array.protocols); ArrayList protocolList= new ArrayList(); for(String protocol: protocols){ protocolList.add(new ServicesListItem(protocol)); } ServicesListAdapter adapter = new ServicesListAdapter(getActivity().getBaseContext(), protocolList); list.setAdapter(adapter); if(switchChangeListener == null){ switchChangeListener = new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(!HelperUtils.isWifiConnected(getActivity())){ new AlertDialog.Builder(getActivity()) .setTitle("Information") .setMessage("You are not connected to a WiFi network. \n\nPlease connect to one, before trying to activate HosTaGe.") .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }) .setIcon(android.R.drawable.ic_dialog_info) .show(); setStateNotActive(); setStateNotConnected(); } else { if(isChecked){ setStateActive(); } else { setStateNotActive(); } } } }; } return rootView; } private void setStateActive() { } private void setStateNotConnected() { mServicesTextName.setText("Not connected"); } private void setStateNotActive() { } }