From cf3d00ad5bbf8b604cd94aa2d6e2dd3dad37dbed Mon Sep 17 00:00:00 2001 From: Elad Keyshawn Date: Tue, 5 Apr 2016 12:23:40 +0300 Subject: [PATCH] Merge remote-tracking branch 'remotes/upstream/master' # Conflicts resolved: # android/res/values/strings.xml # android/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java Added snackbar when bookmarks removed --- res/layout/activity_bookmarks.xml | 68 ++++++++++--------- res/layout/bookmarks_row.xml | 2 +- .../kiwixmobile/views/BookmarksActivity.java | 27 ++++++-- 3 files changed, 60 insertions(+), 37 deletions(-) diff --git a/res/layout/activity_bookmarks.xml b/res/layout/activity_bookmarks.xml index d06b97975..865e0106d 100644 --- a/res/layout/activity_bookmarks.xml +++ b/res/layout/activity_bookmarks.xml @@ -1,45 +1,49 @@ + android:orientation="vertical" + > - + + + + + + android:layout_height="match_parent" + /> - - - - - - - - + + diff --git a/res/layout/bookmarks_row.xml b/res/layout/bookmarks_row.xml index 94b71dc89..4c1d96833 100644 --- a/res/layout/bookmarks_row.xml +++ b/res/layout/bookmarks_row.xml @@ -12,7 +12,7 @@ android:layout_height="fill_parent" android:layout_margin="15dp" android:textColor="@color/material_blue_grey_900" - android:textSize="20sp" + android:textSize="15sp" /> diff --git a/src/org/kiwix/kiwixmobile/views/BookmarksActivity.java b/src/org/kiwix/kiwixmobile/views/BookmarksActivity.java index 2e6c041e3..09e844f73 100644 --- a/src/org/kiwix/kiwixmobile/views/BookmarksActivity.java +++ b/src/org/kiwix/kiwixmobile/views/BookmarksActivity.java @@ -1,6 +1,7 @@ package org.kiwix.kiwixmobile.views; import android.content.Intent; +import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; @@ -13,7 +14,9 @@ import android.view.View; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.LinearLayout; import android.widget.ListView; +import android.widget.Toast; import java.util.ArrayList; import org.kiwix.kiwixmobile.R; @@ -21,16 +24,19 @@ public class BookmarksActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { private ArrayList contents; + private ArrayList tempContents; private ListView bookmarksList; private ArrayAdapter adapter; private ArrayList selected; private int numOfSelected; SparseBooleanArray sparseBooleanArray; + private LinearLayout snackbarLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bookmarks); setUpToolbar(); + snackbarLayout = (LinearLayout) findViewById(R.id.bookmarks_activity_layout); contents = getIntent().getStringArrayListExtra("bookmark_contents"); selected = new ArrayList<>(); bookmarksList = (ListView) findViewById(R.id.bookmarks_list); @@ -51,10 +57,6 @@ public class BookmarksActivity extends AppCompatActivity numOfSelected--; mode.setTitle(numOfSelected + " Selected"); } - //sparseBooleanArray = bookmarksList.getCheckedItemPositions(); - //adapter.setSparse(sparseBooleanArray); - //adapter.notifyDataSetChanged(); - } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { @@ -73,6 +75,7 @@ public class BookmarksActivity extends AppCompatActivity switch (item.getItemId()) { case R.id.menu_bookmarks_delete: deleteSelectedItems(); + popDeleteBookmarksSnackbar(); mode.finish(); return true; default: @@ -87,8 +90,24 @@ public class BookmarksActivity extends AppCompatActivity bookmarksList.setOnItemClickListener(this); } + private void popDeleteBookmarksSnackbar() { + Snackbar bookmarkDeleteSnackbar = + Snackbar.make(snackbarLayout, numOfSelected + " deleted", Snackbar.LENGTH_LONG) + .setAction("Undo", new View.OnClickListener() { + @Override public void onClick(View v) { + contents.clear(); + contents.addAll(tempContents); + adapter.notifyDataSetChanged(); + Toast.makeText(getApplicationContext(), "Bookmarks restored", Toast.LENGTH_SHORT).show(); + } + }); + bookmarkDeleteSnackbar.setActionTextColor(getResources().getColor(R.color.white_undo)); + bookmarkDeleteSnackbar.show(); + } + private void deleteSelectedItems() { sparseBooleanArray = bookmarksList.getCheckedItemPositions(); + tempContents = new ArrayList<>(contents); for (int i = sparseBooleanArray.size() - 1; i >= 0; i--) contents.remove(sparseBooleanArray.keyAt(i));