Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:support-annotations:22.1.1'
compile 'com.getbase:floatingactionbutton:1.8.0'
compile 'com.afollestad:material-dialogs:0.6.3.3'
compile 'com.afollestad:material-dialogs:0.7.6.0'
compile 'com.nispok:snackbar:2.10.6'
apt 'org.androidannotations:androidannotations:3.2'
}
Expand Down
56 changes: 56 additions & 0 deletions app/src/main/java/org/transdroid/core/gui/ConfirmRemoveDialog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.transdroid.core.gui;

import android.app.AlertDialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;

import org.transdroid.R;
import org.transdroid.daemon.Daemon;
import org.transdroid.daemon.Torrent;

import java.util.List;

public class ConfirmRemoveDialog {

/**
* Opens a dialog that confirms the removal of a torrent, along with an option for deleting downloaded files
* @param activity The torrents activity from which the dialog is started (and which received the callback)
* @param torrents List of torrents to be removed
*/
public static void startConfirmRemove(final TorrentsActivity activity, final List<Torrent> torrents) {
final CharSequence checkboxItems[] = {activity.getString(R.string.navigation_confirmdataremoval)};
final boolean[] isRemoveDataChecked = {false};

new DialogFragment() {
public android.app.Dialog onCreateDialog(android.os.Bundle savedInstanceState) {
return new AlertDialog.Builder(activity).setTitle(R.string.navigation_confirmremove)
.setMultiChoiceItems(checkboxItems, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
isRemoveDataChecked[0] = isChecked;
}
})
.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (Torrent torrent : torrents) {
boolean shouldRemoveData = isRemoveDataChecked[0] &&
Daemon.supportsRemoveWithData(torrent.getDaemon());
activity.removeTorrent(torrent, shouldRemoveData);
}
dialog.dismiss();
}
})
.setNegativeButton(android.R.string.cancel, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
};
}.show(activity.getFragmentManager(), "confirmremoval");
}

}
22 changes: 6 additions & 16 deletions app/src/main/java/org/transdroid/core/gui/DetailsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
import org.transdroid.daemon.TorrentFile;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

Expand Down Expand Up @@ -293,9 +294,6 @@ public boolean onMenuItemClick(MenuItem menuItem) {
case R.id.action_start_forced:
startTorrentForced();
return true;
case R.id.action_remove_withdata:
removeTorrentWithData();
return true;
case R.id.action_stop:
stopTorrent();
return true;
Expand All @@ -308,8 +306,8 @@ public boolean onMenuItemClick(MenuItem menuItem) {
case R.id.action_start_default:
startTorrentDefault();
return true;
case R.id.action_remove_default:
removeTorrentDefault();
case R.id.action_remove:
removeTorrent();
return true;
case R.id.action_start_direct:
startTorrentDirect();
Expand All @@ -335,7 +333,6 @@ private void updateMenuOptions() {
detailsMenu.getMenu().findItem(R.id.action_start_direct).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_stop).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_remove).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_remove_withdata).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_setlabel).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_forcerecheck).setVisible(false);
detailsMenu.getMenu().findItem(R.id.action_updatetrackers).setVisible(false);
Expand All @@ -351,8 +348,6 @@ private void updateMenuOptions() {
detailsMenu.getMenu().findItem(R.id.action_start_direct).setVisible(startStop && !forcedStart && torrent.canStart());
detailsMenu.getMenu().findItem(R.id.action_stop).setVisible(startStop && torrent.canStop());
detailsMenu.getMenu().findItem(R.id.action_remove).setVisible(true);
boolean removeWithData = Daemon.supportsRemoveWithData(torrent.getDaemon());
detailsMenu.getMenu().findItem(R.id.action_remove_withdata).setVisible(removeWithData);
boolean setLabel = Daemon.supportsSetLabel(torrent.getDaemon());
detailsMenu.getMenu().findItem(R.id.action_setlabel).setVisible(setLabel);
boolean forceRecheck = Daemon.supportsForceRecheck(torrent.getDaemon());
Expand Down Expand Up @@ -394,14 +389,9 @@ protected void stopTorrent() {
getTasksExecutor().stopTorrent(torrent);
}

@OptionsItem(R.id.action_remove_default)
protected void removeTorrentDefault() {
getTasksExecutor().removeTorrent(torrent, false);
}

@OptionsItem(R.id.action_remove_withdata)
protected void removeTorrentWithData() {
getTasksExecutor().removeTorrent(torrent, true);
@OptionsItem(resName = "action_remove")
protected void removeTorrent() {
ConfirmRemoveDialog.startConfirmRemove((TorrentsActivity) getActivity(), Arrays.asList(torrent));
}

@OptionsItem(R.id.action_setlabel)
Expand Down
12 changes: 2 additions & 10 deletions app/src/main/java/org/transdroid/core/gui/TorrentsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -339,16 +339,8 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
}
mode.finish();
return true;
} else if (itemId == R.id.action_remove_default) {
for (Torrent torrent : checked) {
getTasksExecutor().removeTorrent(torrent, false);
}
mode.finish();
return true;
} else if (itemId == R.id.action_remove_withdata) {
for (Torrent torrent : checked) {
getTasksExecutor().removeTorrent(torrent, true);
}
} else if (itemId == R.id.action_remove) {
ConfirmRemoveDialog.startConfirmRemove((TorrentsActivity) getActivity(), checked);
mode.finish();
return true;
} else if (itemId == R.id.action_setlabel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatCallback;
import android.support.v7.app.AppCompatDelegate;
Expand Down Expand Up @@ -62,4 +63,10 @@ public void onSupportActionModeStarted(ActionMode actionMode) {
public void onSupportActionModeFinished(ActionMode actionMode) {

}

@Nullable
@Override
public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) {
return null;
}
}
8 changes: 0 additions & 8 deletions app/src/main/res/menu/fragment_details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,6 @@
android:orderInCategory="204"
android:title="@string/action_remove"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_remove_default"
android:title="@string/action_remove_default" />
<item
android:id="@+id/action_remove_withdata"
android:title="@string/action_remove_withdata" />
</menu>
</item>
<item
android:id="@+id/action_setlabel"
Expand Down
12 changes: 2 additions & 10 deletions app/src/main/res/menu/fragment_torrents_cab.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,8 @@
<item
android:id="@+id/action_remove"
android:icon="@drawable/ic_action_remove"
android:title="@string/action_remove"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_remove_default"
android:title="@string/action_remove_default" />
<item
android:id="@+id/action_remove_withdata"
android:title="@string/action_remove_withdata" />
</menu>
android:showAsAction="always"
android:title="@string/action_remove">
</item>
<item
android:id="@+id/action_setlabel"
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@
<string name="navigation_selectfinished">Select finished</string>
<string name="navigation_invertselection">Invert selection</string>
<string name="navigation_pickserver">Add torrent to&#8230;</string>
<string name="navigation_confirmremove">Confirm torrent removal?</string>
<string name="navigation_confirmdataremoval">Also remove downloaded files?</string>
<string name="navigation_url_hint" translatable="false">http://…</string>

<string name="status_status">STATUS: %1$s</string>
Expand Down