diff --git a/core/res/layout/fragment_details.xml b/core/res/layout/fragment_details.xml
index cc8306dd..e2700c2c 100644
--- a/core/res/layout/fragment_details.xml
+++ b/core/res/layout/fragment_details.xml
@@ -52,4 +52,17 @@
android:textIsSelectable="false"
android:visibility="visible" />
+
+
diff --git a/core/src/org/transdroid/core/gui/DetailsActivity.java b/core/src/org/transdroid/core/gui/DetailsActivity.java
index 3f6e1bd0..0f3c816d 100644
--- a/core/src/org/transdroid/core/gui/DetailsActivity.java
+++ b/core/src/org/transdroid/core/gui/DetailsActivity.java
@@ -35,6 +35,7 @@ import org.transdroid.core.gui.lists.LocalTorrent;
import org.transdroid.core.gui.log.Log;
import org.transdroid.core.gui.navigation.Label;
import org.transdroid.core.gui.navigation.NavigationHelper;
+import org.transdroid.core.gui.navigation.RefreshableActivity;
import org.transdroid.core.service.ConnectivityHelper;
import org.transdroid.daemon.Daemon;
import org.transdroid.daemon.IDaemonAdapter;
@@ -79,7 +80,7 @@ import de.keyboardsurfer.android.widget.crouton.Crouton;
*/
@EActivity(resName = "activity_details")
@OptionsMenu(resName = "activity_details")
-public class DetailsActivity extends SherlockFragmentActivity implements TorrentTasksExecutor {
+public class DetailsActivity extends SherlockFragmentActivity implements TorrentTasksExecutor, RefreshableActivity {
@Extra
@InstanceState
@@ -148,8 +149,8 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
}
@OptionsItem(resName = "action_refresh")
- protected void refreshScreen() {
- fragmentDetails.updateIsLoading(true);
+ public void refreshScreen() {
+ fragmentDetails.updateIsLoading(true, null);
refreshTorrent();
refreshTorrentDetails(torrent);
refreshTorrentFiles(torrent);
@@ -162,7 +163,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
onTorrentsRetrieved(((RetrieveTaskSuccessResult) result).getTorrents(),
((RetrieveTaskSuccessResult) result).getLabels());
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, true);
}
}
@@ -174,7 +175,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof GetTorrentDetailsTaskSuccessResult) {
onTorrentDetailsRetrieved(torrent, ((GetTorrentDetailsTaskSuccessResult) result).getTorrentDetails());
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -186,7 +187,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof GetFileListTaskSuccessResult) {
onTorrentFilesRetrieved(torrent, ((GetFileListTaskSuccessResult) result).getFiles());
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -198,7 +199,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_resumed, torrent.getName()));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -210,7 +211,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_paused, torrent.getName()));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -222,7 +223,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_started, torrent.getName()));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -234,7 +235,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_stopped, torrent.getName()));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -247,7 +248,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
closeActivity(getString(withData ? R.string.result_removed_with_data : R.string.result_removed,
torrent.getName()));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -267,7 +268,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_labelset, newLabel));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -278,7 +279,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_trackersupdated));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -289,7 +290,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_locationset, newLocation));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -301,7 +302,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
if (result instanceof DaemonTaskResult) {
onTaskSucceeded((DaemonTaskSuccessResult) result, getString(R.string.result_priotitiesset));
} else {
- onCommunicationError((DaemonTaskFailureResult) result);
+ onCommunicationError((DaemonTaskFailureResult) result, false);
}
}
@@ -326,9 +327,10 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
}
@UiThread
- protected void onCommunicationError(DaemonTaskFailureResult result) {
+ protected void onCommunicationError(DaemonTaskFailureResult result, boolean isCritical) {
Log.i(this, result.getException().toString());
- fragmentDetails.updateIsLoading(false);
+ String error = getString(LocalTorrent.getResourceForDaemonException(result.getException()));
+ fragmentDetails.updateIsLoading(false, isCritical? error: null);
Crouton.showText(this, getString(LocalTorrent.getResourceForDaemonException(result.getException())),
NavigationHelper.CROUTON_ERROR_STYLE);
}
@@ -336,7 +338,7 @@ public class DetailsActivity extends SherlockFragmentActivity implements Torrent
@UiThread
protected void onTorrentsRetrieved(List torrents, List labels) {
// Update the details fragment accordingly
- fragmentDetails.updateIsLoading(false);
+ fragmentDetails.updateIsLoading(false, null);
fragmentDetails.perhapsUpdateTorrent(torrents);
fragmentDetails.updateLabels(Label.convertToNavigationLabels(labels,
getResources().getString(R.string.labels_unlabeled)));
diff --git a/core/src/org/transdroid/core/gui/DetailsFragment.java b/core/src/org/transdroid/core/gui/DetailsFragment.java
index 2697335b..80b2f591 100644
--- a/core/src/org/transdroid/core/gui/DetailsFragment.java
+++ b/core/src/org/transdroid/core/gui/DetailsFragment.java
@@ -21,6 +21,7 @@ import java.util.Collections;
import java.util.List;
import org.androidannotations.annotations.AfterViews;
+import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.InstanceState;
import org.androidannotations.annotations.OptionsItem;
@@ -34,6 +35,7 @@ import org.transdroid.core.gui.lists.SimpleListItemAdapter;
import org.transdroid.core.gui.navigation.Label;
import org.transdroid.core.gui.navigation.NavigationHelper;
import org.transdroid.core.gui.navigation.NavigationHelper_;
+import org.transdroid.core.gui.navigation.RefreshableActivity;
import org.transdroid.core.gui.navigation.SelectionManagerMode;
import org.transdroid.core.gui.navigation.SetLabelDialog;
import org.transdroid.core.gui.navigation.SetLabelDialog.OnLabelPickedListener;
@@ -85,13 +87,15 @@ public class DetailsFragment extends SherlockFragment implements OnTrackersUpdat
protected ArrayList