package com.charlesmadere.android.classygames.settings;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.actionbarsherlock.view.MenuItem;
import com.charlesmadere.android.classygames.BaseActivity;
import com.charlesmadere.android.classygames.R;
import com.charlesmadere.android.classygames.server.ServerApi;
import com.charlesmadere.android.classygames.server.ServerApiUnregister;
public final class UnregisterFromNotificationsActivity extends BaseActivity
{
private ServerApiUnregister serverApiTask;
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState, R.string.unregister_from_notifications, true);
setContentView(R.layout.unregister_from_notifications_activity);
final Button unregister = (Button) findViewById(R.id.unregister_from_notifications_activity_button_unregister);
unregister.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(final View v)
{
unregister();
}
});
}
@Override
public void onBackPressed()
{
cancelRunningAnyAsyncTask();
super.onBackPressed();
}
@Override
protected void onDestroy()
{
cancelRunningAnyAsyncTask();
super.onDestroy();
}
@Override
public boolean onOptionsItemSelected(final MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
onBackPressed();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
/**
* Cancels the currently running ServerApiTask (if any).
*/
private void cancelRunningAnyAsyncTask()
{
if (serverApiTask != null)
{
serverApiTask.cancel();
}
}
private void unregister()
{
if (serverApiTask == null)
{
final Context context = this;
serverApiTask = new ServerApiUnregister(context, new ServerApi.Listeners()
{
@Override
public void onCancel()
{
serverApiTask = null;
Toast.makeText(context, R.string.unregistration_cancelled, Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onComplete(final String serverResponse)
{
serverApiTask = null;
Toast.makeText(context, R.string.unregistration_complete, Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onDismiss()
{
serverApiTask = null;
}
});
serverApiTask.execute();
}
}
}