package com.felkertech.cumulustv.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
/**
* Receives events related to the current Google Drive operation
*/
public abstract class GoogleDriveBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = GoogleDriveBroadcastReceiver.class.getSimpleName();
public static final String ACTION_STATUS_CHANGED =
GoogleDriveBroadcastReceiver.class.getPackage().getName() + ".status_changed";
public static final String EXTRA_STATUS = "extra_status";
public static final String EVENT_UPLOAD_COMPLETE =
GoogleDriveBroadcastReceiver.class.getPackage().getName() + ".upload_complete";
public static final String EVENT_DOWNLOAD_COMPLETE =
GoogleDriveBroadcastReceiver.class.getPackage().getName() + ".download_complete";
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && intent.hasExtra(EXTRA_STATUS)) {
Log.d(TAG, "Received intent " + intent.toString());
if (intent.getStringExtra(EXTRA_STATUS).equals(EVENT_DOWNLOAD_COMPLETE)) {
onNetworkActionCompleted();
onDownloadCompleted();
}
if (intent.getStringExtra(EXTRA_STATUS).equals(EVENT_UPLOAD_COMPLETE)) {
onNetworkActionCompleted();
onUploadCompleted();
}
} else {
Log.w(TAG, "Received invalid call");
}
}
public static void changeStatus(Context context, String event) {
Intent statusChangedEvent = new Intent(ACTION_STATUS_CHANGED);
// statusChangedEvent.setAction();
statusChangedEvent.putExtra(EXTRA_STATUS, event);
Log.d(TAG, "Sending GDrive broadcast: " + event);
Log.d(TAG, statusChangedEvent.toString());
LocalBroadcastManager.getInstance(context).sendBroadcast(statusChangedEvent);
context.sendBroadcast(statusChangedEvent);
}
public abstract void onDownloadCompleted();
public abstract void onUploadCompleted();
public abstract void onNetworkActionCompleted();
}