Android Open Source - TimeTabler Sync Adapter






From Project

Back to project page TimeTabler.

License

The source code is released under:

Apache License

If you think the Android project TimeTabler listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2013 Ian Kavanagh/*w  w w.  j  av  a 2 s . c o m*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package ie.clashoftheash.timetabler.sync;

import ie.clashoftheash.timetabler.BuildConfig;
import ie.clashoftheash.timetabler.provider.Timetable;
import ie.clashoftheash.timetabler.provider.TimetableParser;
import ie.clashoftheash.timetabler.utils.NetworkUtils;

import java.io.IOException;
import java.net.MalformedURLException;

import org.acra.ACRA;

import android.accounts.Account;
import android.content.AbstractThreadedSyncAdapter;
import android.content.ContentProviderClient;
import android.content.Context;
import android.content.SyncResult;
import android.os.Bundle;
import android.util.Log;

public class SyncAdapter extends AbstractThreadedSyncAdapter {
  private static final String TAG = "SyncAdapter";

  private final TimetableParser parser;

  public SyncAdapter(Context context, boolean autoInitialize) {
    super(context, autoInitialize);

    parser = new TimetableParser(context);
  }

  @Override
  public void onPerformSync(Account account, Bundle extras, String authority,
      ContentProviderClient provider, SyncResult syncResult) {
    if (!NetworkUtils.canPerformSync(getContext()))
      return;

    int[] changes = new int[3];

    try {
      if (BuildConfig.DEBUG)
        Log.d(TAG, "Beginning timetable sync");

      changes = parser.beginParsing(provider);
    } catch (MalformedURLException e) {
      Log.e(TAG, "MalformedURLException", e);
      ACRA.getErrorReporter().handleSilentException(e);
      syncResult.stats.numIoExceptions++;
    } catch (IOException e) {
      Log.e(TAG, "IOException", e);
      ACRA.getErrorReporter().handleSilentException(e);
      syncResult.stats.numIoExceptions++;
    } catch (Exception e) {
      Log.e(TAG, "Exception", e);
      ACRA.getErrorReporter().handleSilentException(e);
      syncResult.stats.numParseExceptions++;
    }

    if (BuildConfig.DEBUG)
      Log.d(TAG, changes[0] + " inserts\n" + changes[1] + " updates\n"
          + changes[2] + " deletes");

    syncResult.stats.numInserts = changes[0];
    syncResult.stats.numUpdates = changes[1];
    syncResult.stats.numDeletes = changes[2];

    getContext().getContentResolver().notifyChange(
        Timetable.Events.CONTENT_URI, null);
  }

}




Java Source Code List

ie.clashoftheash.timetabler.TimeTablerApplication.java
ie.clashoftheash.timetabler.authenticator.AccountUtils.java
ie.clashoftheash.timetabler.authenticator.AuthenticatorService.java
ie.clashoftheash.timetabler.authenticator.Authenticator.java
ie.clashoftheash.timetabler.provider.TimetableParser.java
ie.clashoftheash.timetabler.provider.TimetableProvider.java
ie.clashoftheash.timetabler.provider.TimetableUtils.java
ie.clashoftheash.timetabler.provider.Timetable.java
ie.clashoftheash.timetabler.sync.SyncAdapter.java
ie.clashoftheash.timetabler.sync.SyncService.java
ie.clashoftheash.timetabler.ui.CreateEventActivity.java
ie.clashoftheash.timetabler.ui.EventDetailActivity.java
ie.clashoftheash.timetabler.ui.EventDetailFragment.java
ie.clashoftheash.timetabler.ui.EventListActivity.java
ie.clashoftheash.timetabler.ui.EventListFragment.java
ie.clashoftheash.timetabler.ui.LoginActivity.java
ie.clashoftheash.timetabler.ui.SettingsActivity.java
ie.clashoftheash.timetabler.ui.dialogs.AccountExistsFragment.java
ie.clashoftheash.timetabler.ui.dialogs.DatePickerFragment.java
ie.clashoftheash.timetabler.ui.dialogs.DeleteEventFragment.java
ie.clashoftheash.timetabler.ui.dialogs.NetworkErrorFragment.java
ie.clashoftheash.timetabler.ui.dialogs.RemoveAccountFragment.java
ie.clashoftheash.timetabler.ui.dialogs.TimePickerFragment.java
ie.clashoftheash.timetabler.ui.widget.AgendaAdapter.java
ie.clashoftheash.timetabler.ui.widget.SimpleSectionedListAdapter.java
ie.clashoftheash.timetabler.utils.LoadEvent.java
ie.clashoftheash.timetabler.utils.NetworkUtils.java
ie.clashoftheash.timetabler.utils.Utils.java