/*******************************************************************************
* Created by Carlos Yaconi
* Copyright 2015 Prey Inc. All rights reserved.
* License: GPLv3
* Full license at "/LICENSE"
******************************************************************************/
package com.prey.preferences;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.widget.Toast;
import com.prey.PreyConfig;
import com.prey.actions.geofences.GeofenceController;
import com.prey.actions.geofences.GeofenceDataSource;
import com.prey.activities.LoginActivity;
import com.prey.backwardcompatibility.FroyoSupport;
import com.prey.exceptions.PreyException;
import com.prey.json.actions.Detach;
import com.prey.net.PreyWebServices;
import com.prey.R;
public class DetachDevicePreferences extends DialogPreference {
Context ctx = null;
public DetachDevicePreferences(Context context, AttributeSet attrs) {
super(context, attrs);
this.ctx = context;
}
public DetachDevicePreferences(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.ctx = context;
}
@Override
public void onClick(DialogInterface dialog, int which) {
super.onClick(dialog, which);
if (which == DialogInterface.BUTTON_POSITIVE) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
new DetachDevice().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
new DetachDevice().execute();
}
}
public class DetachDevice extends AsyncTask<Void, Void, Void> {
private String error = null;
ProgressDialog progressDialog = null;
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(getContext());
progressDialog.setMessage(getContext().getText(R.string.preferences_detach_dettaching_message).toString());
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected Void doInBackground(Void... unused) {
error= Detach.detachDevice(getContext());
return null;
}
@Override
protected void onPostExecute(Void unused) {
try {
progressDialog.dismiss();
} catch (Exception e) {
}
if (error != null) {
Toast.makeText(getContext(), error, Toast.LENGTH_LONG).show();
showDialog(new Bundle());
} else {
Intent welcome = new Intent(getContext(), LoginActivity.class);
getContext().startActivity(welcome);
}
}
}
}