//------------------------------------------------------------------------------
// Copyright (c) 2012 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
package com.microsoft.live.sample;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TabHost;
import android.widget.Toast;
import com.microsoft.live.LiveAuthClient;
import com.microsoft.live.LiveAuthException;
import com.microsoft.live.LiveAuthListener;
import com.microsoft.live.LiveConnectSession;
import com.microsoft.live.LiveStatus;
import com.microsoft.live.sample.hotmail.ContactsActivity;
import com.microsoft.live.sample.identity.ViewProfileActivity;
import com.microsoft.live.sample.skydrive.SkyDriveActivity;
public class MainActivity extends TabActivity {
private static final int DIALOG_LOGOUT_ID = 0;
private LiveAuthClient mAuthClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LiveSdkSampleApplication app = (LiveSdkSampleApplication) getApplication();
mAuthClient = app.getAuthClient();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent(this, ViewProfileActivity.class);
spec = tabHost.newTabSpec("profile").setIndicator("Profile").setContent(intent);
tabHost.addTab(spec);
intent = new Intent(this, ContactsActivity.class);
spec = tabHost.newTabSpec("contacts").setIndicator("Contacts").setContent(intent);
tabHost.addTab(spec);
intent = new Intent(this, SkyDriveActivity.class);
spec = tabHost.newTabSpec("skydrive").setIndicator("SkyDrive").setContent(intent);
tabHost.addTab(spec);
intent = new Intent(this, ExplorerActivity.class);
spec = tabHost.newTabSpec("explorer").setIndicator("Explorer").setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
showDialog(DIALOG_LOGOUT_ID);
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
@Override
protected Dialog onCreateDialog(final int id) {
Dialog dialog = null;
switch (id) {
case DIALOG_LOGOUT_ID: {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Logout")
.setMessage("The Live Connect Session will be cleared.")
.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAuthClient.logout(new LiveAuthListener() {
@Override
public void onAuthError(LiveAuthException exception, Object userState) {
showToast(exception.getMessage());
}
@Override
public void onAuthComplete(LiveStatus status,
LiveConnectSession session,
Object userState) {
LiveSdkSampleApplication app =
(LiveSdkSampleApplication)getApplication();
app.setSession(null);
app.setConnectClient(null);
finish();
}
});
}
}).setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialog = builder.create();
break;
}
}
if (dialog != null) {
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
removeDialog(id);
}
});
}
return dialog;
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}