diff --git a/core/res/drawable-hdpi/ic_action_info_dark.png b/core/res/drawable-hdpi/ic_action_info_dark.png new file mode 100755 index 00000000..2bc2c0c1 Binary files /dev/null and b/core/res/drawable-hdpi/ic_action_info_dark.png differ diff --git a/core/res/drawable-hdpi/ic_action_info_light.png b/core/res/drawable-hdpi/ic_action_info_light.png new file mode 100755 index 00000000..3e1f5b43 Binary files /dev/null and b/core/res/drawable-hdpi/ic_action_info_light.png differ diff --git a/core/res/drawable-mdpi/ic_action_info_dark.png b/core/res/drawable-mdpi/ic_action_info_dark.png new file mode 100755 index 00000000..7be15b95 Binary files /dev/null and b/core/res/drawable-mdpi/ic_action_info_dark.png differ diff --git a/core/res/drawable-mdpi/ic_action_info_light.png b/core/res/drawable-mdpi/ic_action_info_light.png new file mode 100755 index 00000000..715ffcc3 Binary files /dev/null and b/core/res/drawable-mdpi/ic_action_info_light.png differ diff --git a/core/res/drawable-xhdpi/ic_action_info_dark.png b/core/res/drawable-xhdpi/ic_action_info_dark.png new file mode 100755 index 00000000..86ec02dc Binary files /dev/null and b/core/res/drawable-xhdpi/ic_action_info_dark.png differ diff --git a/core/res/drawable-xhdpi/ic_action_info_light.png b/core/res/drawable-xhdpi/ic_action_info_light.png new file mode 100755 index 00000000..13490fd0 Binary files /dev/null and b/core/res/drawable-xhdpi/ic_action_info_light.png differ diff --git a/core/res/drawable-xxhdpi/ic_action_info_dark.png b/core/res/drawable-xxhdpi/ic_action_info_dark.png new file mode 100755 index 00000000..2c168948 Binary files /dev/null and b/core/res/drawable-xxhdpi/ic_action_info_dark.png differ diff --git a/core/res/drawable-xxhdpi/ic_action_info_light.png b/core/res/drawable-xxhdpi/ic_action_info_light.png new file mode 100755 index 00000000..26bd0768 Binary files /dev/null and b/core/res/drawable-xxhdpi/ic_action_info_light.png differ diff --git a/core/res/menu/fragment_rssitems_cab.xml b/core/res/menu/fragment_rssitems_cab.xml index 0edbe7ed..07ca6b1a 100644 --- a/core/res/menu/fragment_rssitems_cab.xml +++ b/core/res/menu/fragment_rssitems_cab.xml @@ -22,4 +22,22 @@ android:showAsAction="always" android:title="@string/action_addall" /> + + + + + + diff --git a/core/res/menu/fragment_searchresults_cab.xml b/core/res/menu/fragment_searchresults_cab.xml index e80c76c8..5bdbe14c 100644 --- a/core/res/menu/fragment_searchresults_cab.xml +++ b/core/res/menu/fragment_searchresults_cab.xml @@ -16,16 +16,16 @@ --> - - + + diff --git a/core/res/values/attrs.xml b/core/res/values/attrs.xml index 820371c5..71ca0075 100644 --- a/core/res/values/attrs.xml +++ b/core/res/values/attrs.xml @@ -23,7 +23,9 @@ + + @@ -43,7 +45,6 @@ - diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml index 8190c96f..227dacc1 100644 --- a/core/res/values/strings.xml +++ b/core/res/values/strings.xml @@ -62,8 +62,11 @@ Remote play in VLC Download using FTP(S) Show details + Open website + Use as new search Remove settings Visit transdroid.org + Close %1$s allows you to monitor and manage the torrent client you run at home or on your seedbox. Setting things up can be a bit tricky, but we offer step-by-step guides and promise it\'ll be worth it! Connected, but no torrents are active within the current filter diff --git a/core/res/values/styles.xml b/core/res/values/styles.xml index 35ef04d7..5362cc78 100644 --- a/core/res/values/styles.xml +++ b/core/res/values/styles.xml @@ -24,6 +24,7 @@ @drawable/ic_action_discard_light @drawable/ic_action_done_light @drawable/ic_action_filter_light + @drawable/ic_action_info_light @drawable/ic_action_labels_light @drawable/ic_action_new_light @drawable/ic_action_pause_light @@ -58,6 +59,7 @@ @drawable/ic_action_discard_dark @drawable/ic_action_done_dark @drawable/ic_action_filter_dark + @drawable/ic_action_info_dark @drawable/ic_action_labels_dark @drawable/ic_action_new_dark @drawable/ic_action_pause_dark diff --git a/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java b/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java index 6a92b40b..f8a265aa 100644 --- a/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java +++ b/core/src/org/transdroid/core/gui/rss/RssitemsFragment.java @@ -27,13 +27,23 @@ import org.androidannotations.annotations.ItemClick; import org.androidannotations.annotations.ViewById; import org.transdroid.core.R; import org.transdroid.core.gui.TorrentsActivity_; +import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.navigation.SelectionManagerMode; +import org.transdroid.core.gui.search.SearchActivity_; import org.transdroid.core.rssparser.Channel; import org.transdroid.core.rssparser.Item; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.SearchManager; import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import android.text.TextUtils; import android.view.View; import android.widget.TextView; +import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.view.ActionMode; @@ -42,6 +52,8 @@ import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.SherlockListView; import com.actionbarsherlock.view.SherlockListView.MultiChoiceModeListenerCompat; +import de.keyboardsurfer.android.widget.crouton.Crouton; + /** * Fragment that lists the items in a specific RSS feed * @author Eric Kok @@ -151,6 +163,35 @@ public class RssitemsFragment extends SherlockFragment { mode.finish(); return true; } else { + // The other items only operate on one (the first) selected item + if (checked.size() < 1) + return false; + final Item first = checked.get(0); + if (itemId == R.id.action_showdetails) { + // Show a dialog box with the RSS item description text + new DialogFragment() { + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AlertDialog.Builder(getActivity()).setMessage(first.getDescription()) + .setPositiveButton(R.string.action_close, null).create(); + }; + }.show(getFragmentManager(), "RssItemDescription"); + } else if (itemId == R.id.action_openwebsite) { + // Open the browser to show the website contained in the item's link tag + Toast.makeText(getActivity(), getString(R.string.search_openingdetails, first.getTitle()), + Toast.LENGTH_LONG).show(); + if (!TextUtils.isEmpty(first.getLink())) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(first.getLink()))); + } else { + // No URL was specified in the RSS feed item link tag (or no link tag was present) + Crouton.showText(getActivity(), R.string.error_no_link, NavigationHelper.CROUTON_ERROR_STYLE); + } + } else if (itemId == R.id.action_useassearch) { + // Use the RSS item title to start a new search (mimicking the search manager style) + Intent search = SearchActivity_.intent(getActivity()).get(); + search.setAction(Intent.ACTION_SEARCH); + search.putExtra(SearchManager.QUERY, first.getTitle()); + startActivity(search); + } return false; } } diff --git a/core/src/org/transdroid/core/service/AppUpdateService.java b/core/src/org/transdroid/core/service/AppUpdateService.java index 1180442d..381deed0 100644 --- a/core/src/org/transdroid/core/service/AppUpdateService.java +++ b/core/src/org/transdroid/core/service/AppUpdateService.java @@ -87,7 +87,7 @@ public class AppUpdateService extends IntentService { Calendar lastDay = Calendar.getInstance(); lastDay.add(Calendar.DAY_OF_MONTH, -1); if (lastChecked != null && lastChecked.after(lastDay.getTime())) { - Log.d(this, "Ship the update service, as we already checked the last 24 hours (or to be exact at " + Log.d(this, "Skip the update service, as we already checked the last 24 hours (or to be exact at " + lastChecked.toString() + ")."); return; }