Merge branch 'siema-dev' into dev

tempwork
Floens 11 years ago
commit cee943aa3e
  1. 1
      Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java
  2. 46
      Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java
  3. 10
      Clover/app/src/main/res/menu/base.xml

@ -409,6 +409,7 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
setMenuItemEnabled(menu.findItem(R.id.action_reload_tablet), !slidable); setMenuItemEnabled(menu.findItem(R.id.action_reload_tablet), !slidable);
setMenuItemEnabled(menu.findItem(R.id.action_pin), !slidable || !open); setMenuItemEnabled(menu.findItem(R.id.action_pin), !slidable || !open);
setMenuItemEnabled(menu.findItem(R.id.action_download_album), !slidable || !open);
setMenuItemEnabled(menu.findItem(R.id.action_reply), slidable); setMenuItemEnabled(menu.findItem(R.id.action_reply), slidable);
setMenuItemEnabled(menu.findItem(R.id.action_reply_tablet), !slidable); setMenuItemEnabled(menu.findItem(R.id.action_reply_tablet), !slidable);

@ -24,6 +24,7 @@ import android.os.Bundle;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
@ -44,6 +45,7 @@ import com.android.volley.ServerError;
import com.android.volley.VolleyError; import com.android.volley.VolleyError;
import org.floens.chan.R; import org.floens.chan.R;
import org.floens.chan.core.ChanPreferences;
import org.floens.chan.core.loader.EndOfLineException; import org.floens.chan.core.loader.EndOfLineException;
import org.floens.chan.core.loader.Loader; import org.floens.chan.core.loader.Loader;
import org.floens.chan.core.manager.ThreadManager; import org.floens.chan.core.manager.ThreadManager;
@ -54,9 +56,13 @@ import org.floens.chan.ui.activity.BaseActivity;
import org.floens.chan.ui.activity.ImageViewActivity; import org.floens.chan.ui.activity.ImageViewActivity;
import org.floens.chan.ui.adapter.PostAdapter; import org.floens.chan.ui.adapter.PostAdapter;
import org.floens.chan.ui.view.LoadView; import org.floens.chan.ui.view.LoadView;
import org.floens.chan.utils.ImageSaver;
import org.floens.chan.utils.ThemeHelper; import org.floens.chan.utils.ThemeHelper;
import org.floens.chan.utils.Utils; import org.floens.chan.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import javax.net.ssl.SSLException; import javax.net.ssl.SSLException;
public class ThreadFragment extends Fragment implements ThreadManager.ThreadManagerListener, PostAdapter.PostAdapterListener { public class ThreadFragment extends Fragment implements ThreadManager.ThreadManagerListener, PostAdapter.PostAdapterListener {
@ -147,6 +153,13 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana
loadable = null; loadable = null;
} }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
@ -185,6 +198,39 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana
} }
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (loadable.isThreadMode()) {
switch (item.getItemId()) {
case R.id.action_download_album:
// Get the posts with images
ArrayList<Post> imagePosts = new ArrayList<>();
for (Post post : postAdapter.getList()) {
if (post.hasImage) {
imagePosts.add(post);
}
}
if (imagePosts.size() > 0) {
List<ImageSaver.DownloadPair> list = new ArrayList<>();
String folderName = Post.generateTitle(imagePosts.get(0), 10);
String filename;
for (Post post : imagePosts) {
filename = (ChanPreferences.getImageSaveOriginalFilename() ? post.tim : post.filename) + "." + post.ext;
list.add(new ImageSaver.DownloadPair(post.imageUrl, filename));
}
ImageSaver.getInstance().saveAll(getActivity(), folderName, list);
}
return true;
}
}
return super.onOptionsItemSelected(item);
}
@Override @Override
public void onThumbnailClicked(Post source) { public void onThumbnailClicked(Post source) {
if (postAdapter != null) { if (postAdapter != null) {

@ -106,14 +106,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
android:title="@string/action_share" /> android:title="@string/action_share" />
<item <item
android:id="@+id/action_open_browser" android:id="@+id/action_download_album"
android:orderInCategory="8" android:orderInCategory="8"
android:showAsAction="never" android:showAsAction="never"
android:title="@string/action_download_album" />
<item
android:id="@+id/action_open_browser"
android:orderInCategory="9"
android:showAsAction="never"
android:title="@string/action_open_browser" /> android:title="@string/action_open_browser" />
<item <item
android:id="@+id/action_board_view_mode" android:id="@+id/action_board_view_mode"
android:orderInCategory="9" android:orderInCategory="10"
android:showAsAction="never" android:showAsAction="never"
android:title="@string/action_board_view_mode"> android:title="@string/action_board_view_mode">
<menu> <menu>

Loading…
Cancel
Save