From 68f8880a615e92839ec718b204f7bcd685367b2f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 17 Oct 2013 16:33:30 +0400 Subject: implement tasker action to download articles and go offline --- src/org/fox/ttrss/tasker/TaskerReceiver.java | 69 ++++++++++++++++++++++ .../fox/ttrss/tasker/TaskerSettingsActivity.java | 48 +++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 src/org/fox/ttrss/tasker/TaskerReceiver.java create mode 100644 src/org/fox/ttrss/tasker/TaskerSettingsActivity.java (limited to 'src/org/fox/ttrss/tasker') diff --git a/src/org/fox/ttrss/tasker/TaskerReceiver.java b/src/org/fox/ttrss/tasker/TaskerReceiver.java new file mode 100644 index 00000000..b1200b38 --- /dev/null +++ b/src/org/fox/ttrss/tasker/TaskerReceiver.java @@ -0,0 +1,69 @@ +package org.fox.ttrss.tasker; + +import org.fox.ttrss.CommonActivity; +import org.fox.ttrss.OnlineActivity; +import org.fox.ttrss.offline.OfflineDownloadService; +import org.fox.ttrss.util.SimpleLoginManager; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +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())) { + Log.d(TAG, "about to download stuff!"); + + SimpleLoginManager loginMgr = new SimpleLoginManager() { + + @Override + protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) { + Log.d(TAG, "Got SID=" + sessionId); + + Intent intent = new Intent( + fContext, + OfflineDownloadService.class); + intent.putExtra("sessionId", sessionId); + intent.putExtra("batchMode", true); + + fContext.startService(intent); + } + + @Override + protected void onLoginFailed(int requestId) { + Toast toast = Toast.makeText(fContext, "Could not download articles: login failed", 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(); + + if (login.equals("") || password.equals("")) { + Toast toast = Toast.makeText(fContext, "Could not download articles: not configured?", Toast.LENGTH_SHORT); + toast.show(); + } else { + loginMgr.logIn(context, 1, login, password); + } + } + } + +} diff --git a/src/org/fox/ttrss/tasker/TaskerSettingsActivity.java b/src/org/fox/ttrss/tasker/TaskerSettingsActivity.java new file mode 100644 index 00000000..50c500d1 --- /dev/null +++ b/src/org/fox/ttrss/tasker/TaskerSettingsActivity.java @@ -0,0 +1,48 @@ +package org.fox.ttrss.tasker; + +import org.fox.ttrss.R; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; + +public class TaskerSettingsActivity extends Activity { + private final String TAG = this.getClass().getSimpleName(); + + protected Bundle m_settings = new Bundle(); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + //Bundle settings = getIntent().getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE); + + setContentView(R.layout.tasker_settings); + + Button button = (Button)findViewById(R.id.close_button); + + button.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void finish() { + final Intent intent = new Intent(); + + intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE, m_settings); + intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BLURB, getString(R.string.download_articles_and_go_offline)); + + setResult(RESULT_OK, intent); + + super.finish(); + + } +} -- cgit v1.2.3-54-g00ecf