diff options
Diffstat (limited to 'orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java')
-rw-r--r-- | orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java new file mode 100644 index 00000000..1b1351cb --- /dev/null +++ b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java @@ -0,0 +1,93 @@ +package org.fox.ttrss.tasker; + +import org.fox.ttrss.ApiRequest; +import org.fox.ttrss.CommonActivity; +import org.fox.ttrss.OnlineActivity; +import org.fox.ttrss.offline.OfflineDownloadService; +import org.fox.ttrss.offline.OfflineUploadService; +import org.fox.ttrss.util.SimpleLoginManager; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.widget.Toast; + +public class TaskerReceiver extends BroadcastReceiver { + private final String TAG = this.getClass().getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + Log.d(TAG, "Got action: " + intent.getAction()); + + final Context fContext = context; + + if (com.twofortyfouram.locale.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) { + + final Bundle settings = intent.getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE); + final int actionId = settings != null ? settings.getInt("actionId", -1) : -1; + + Log.d(TAG, "received action id=" + actionId); + + SimpleLoginManager loginMgr = new SimpleLoginManager() { + + @Override + protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) { + + switch (actionId) { + case TaskerSettingsActivity.ACTION_DOWNLOAD: + if (true) { + Intent intent = new Intent(fContext, + OfflineDownloadService.class); + intent.putExtra("sessionId", sessionId); + intent.putExtra("batchMode", true); + + fContext.startService(intent); + } + break; + case TaskerSettingsActivity.ACTION_UPLOAD: + if (true) { + Intent intent = new Intent(fContext, + OfflineUploadService.class); + intent.putExtra("sessionId", sessionId); + intent.putExtra("batchMode", true); + + fContext.startService(intent); + } + break; + default: + Log.d(TAG, "unknown action id=" + actionId); + } + } + + @Override + protected void onLoginFailed(int requestId, ApiRequest ar) { + Toast toast = Toast.makeText(fContext, fContext.getString(ar.getErrorMessage()), Toast.LENGTH_SHORT); + toast.show(); + } + + @Override + protected void onLoggingIn(int requestId) { + // + } + }; + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + String login = prefs.getString("login", "").trim(); + String password = prefs.getString("password", "").trim(); + String ttrssUrl = prefs.getString("ttrss_url", "").trim(); + + if (ttrssUrl.equals("")) { + Toast toast = Toast.makeText(fContext, "Could not download articles: not configured?", Toast.LENGTH_SHORT); + toast.show(); + } else { + loginMgr.logIn(context, 1, login, password); + } + } + } + +} |