package org.hansel.myAlert;
/*This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Created by Javier Mejia @zenyagami
zenyagami@gmail.com
*/
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.hansel.myAlert.Log.Log;
import org.hansel.myAlert.Utils.PreferenciasHancel;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class PanicButtonFragment extends Fragment
{
private TextView txtLastPanic;
private Button btnTracking;
private static final String STOP_TRACK = "Detener";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//habilitamos wifi para tratar de tener una mejor localizaci�n
View v = inflater.inflate(R.layout.fragment_panic, container,false);
Button btnPanico = (Button)v.findViewById(R.id.btnPanico);
txtLastPanic =(TextView)v.findViewById(R.id.txtUltimaAlerta);
btnTracking = (Button)v.findViewById(R.id.IniciaTrackId);
btnPanico.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().startService(new Intent(getActivity(),SendPanicService.class));
Toast.makeText(getActivity().getApplicationContext(), "Alerta enviada"
, Toast.LENGTH_SHORT).show();
//Arregla el bug en el que al iniciar el servicio, no notifica a la Actividad de que
//ya se estaa ejecutando, entonces no se puede detener inmediatamente.
btnTracking.setText(STOP_TRACK);
}
});
//programar rastreo
return v;
}
/* (non-Javadoc)
* @see android.support.v4.app.Fragment#onResume()
*/
@Override
public void onResume() {
super.onResume();
txtLastPanic.setText(PreferenciasHancel.getLastPanicAlert(getActivity().getApplicationContext()));
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try
{
ActivaRadios();
}catch(Exception ex)
{
Log.v("Error al activar los radios!!!!");
ex.printStackTrace();
}
Bundle datos = getArguments();
if(datos !=null)
{
if(datos.getBoolean("panico"))
{
//getActivity().moveTaskToBack(true);
}
}
}
private void ActivaRadios()
{
Log.v("Intentamos activar Datos");
try {
setMobileDataEnabled(getActivity().getApplicationContext(), true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
Log.v("Activamos WIFI");
//WifiManager wifiManager = (WifiManager)getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//wifiManager.setWifiEnabled(true);
}
@SuppressWarnings("rawtypes")
private void setMobileDataEnabled(Context context, boolean enabled) throws ClassNotFoundException, IllegalArgumentException, IllegalAccessException, NoSuchMethodException, NoSuchFieldException, InvocationTargetException {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
@SuppressWarnings("unchecked")
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
}
@Override
public void onPause() {
super.onPause();
}
/*public class ejecutaPanico extends AsyncTask<Void, Void, Void>
{
Contacts con = new Contacts(getActivity());
@Override
protected void onCancelled() {
}
@Override
protected Void doInBackground(Void... params) {
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//iniciamos rastreo
//mostramos el fragmento de programaci�n de rastreo como "detener"
Rastreo rastreo = (Rastreo) getActivity().getSupportFragmentManager().findFragmentById(R.id.fragmentRastreo);
if(rastreo!=null)
{
rastreo.panicButtonPressed();
}
//cancelamos alarma
if(!Util.isMyServiceRunning(getActivity().getApplicationContext()))
{
Util.inicarServicio(getActivity());
}
//mostramos la fecha de la ultima vez que se corrio el p�nico y guardamos la nueva fecha
String currentDateandTime = Util.getSimpleDateFormatTrack(Calendar.getInstance());
txtLastPanic.setText(currentDateandTime);
PreferenciasHancel.setLastPanicAlert(getActivity().getApplicationContext(), currentDateandTime);
}} */
@Override
public void onDestroy() {
super.onDestroy();
}
}