@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   switch (requestCode) {
     case REQUEST_AUTHORIZATION:
       if (resultCode == Activity.RESULT_OK) {
         AsyncLoadCalendars.run(this);
       } else {
         chooseAccount();
       }
       break;
     case REQUEST_ACCOUNT_PICKER:
       if (resultCode == Activity.RESULT_OK && data != null && data.getExtras() != null) {
         String accountName = data.getExtras().getString(AccountManager.KEY_ACCOUNT_NAME);
         if (accountName != null) {
           credential.setAccountName(accountName);
           SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
           SharedPreferences.Editor editor = settings.edit();
           editor.putString(PREF_ACCOUNT_NAME, accountName);
           editor.commit();
           AsyncLoadCalendars.run(this);
         }
       }
       break;
     case ADD_OR_EDIT_CALENDAR_REQUEST:
       if (resultCode == Activity.RESULT_OK) {
         Calendar calendar = new Calendar();
         calendar.setSummary(data.getStringExtra("summary"));
         String id = data.getStringExtra("id");
         if (id == null) {
           new AsyncInsertCalendar(this, calendar).execute();
         } else {
           calendar.setId(id);
           new AsyncUpdateCalendar(this, id, calendar).execute();
         }
       }
       break;
   }
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
   switch (item.getItemId()) {
     case R.id.menu_refresh:
       AsyncLoadCalendars.run(this);
       break;
     case R.id.menu_accounts:
       chooseAccount();
       return true;
   }
   return super.onOptionsItemSelected(item);
 }
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // enable logging
   Logger.getLogger("com.google.api.client").setLevel(LOGGING_LEVEL);
   // view and menu
   setContentView(R.layout.calendarlist);
   listView = (ListView) findViewById(R.id.list);
   registerForContextMenu(listView);
   // Google Accounts
   credential = GoogleAccountCredential.usingOAuth2(this, CalendarScopes.CALENDAR);
   SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
   credential.setAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
   // Calendar client
   client =
       new com.google.api.services.calendar.Calendar.Builder(transport, jsonFactory, credential)
           .setApplicationName("Google-CalendarAndroidSample/1.0")
           .build();
   // if we already have an account, go ahead and fetch calendars now
   if (credential.getAccountName() != null) {
     AsyncLoadCalendars.run(this);
   }
 }