implemented snackbar - UNDO on closing tab

https://sourceforge.net/p/kiwix/feature-requests/232/
This commit is contained in:
Elad Keyshawn 2016-04-02 15:08:59 +03:00
parent f47f9406f4
commit 3ade093fce
4 changed files with 1227 additions and 1204 deletions

View File

@ -23,6 +23,7 @@ dependencies {
compile 'com.android.support:support-v4:22.2.0'
compile files("$buildDir/native-libs/native-libs.jar")
compile 'com.yahoo.squidb:squidb:2.0.0'
compile 'com.android.support:design:22.2.0'
compile 'com.yahoo.squidb:squidb-annotations:2.0.0'
apt 'com.yahoo.squidb:squidb-processor:2.0.0'
// compile fileTree(dir: '.', include: 'content-libs.jar') // DO NOT REMOVE !!

View File

@ -2,7 +2,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:orientation="vertical"
android:id="@+id/linearlayout_main">
<include layout="@layout/toolbar"/>

View File

@ -8,7 +8,7 @@
<color name="secondary_text">#727272</color>
<color name="icons">#212121</color>
<color name="divider">#B6B6B6</color>
<color name="white_undo">#FAFAFA</color>
<color name="gray_list_bg">#0d000000</color>
<color name="drawer_background">#ffffff</color>
<color name="selected_light">#0F000000</color>

View File

@ -32,6 +32,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.preference.PreferenceManager;
import android.support.design.widget.Snackbar;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
@ -63,10 +64,12 @@ import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
@ -78,6 +81,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import org.json.JSONArray;
import org.kiwix.kiwixmobile.settings.Constants;
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
@ -169,6 +173,8 @@ public class KiwixMobileActivity extends AppCompatActivity
// Initialized when onActionModeStarted is triggered.
private ActionMode mActionMode = null;
private KiwixWebView tempForUndo;
private LinearLayout snackbarLayout;
@Override
public void onActionModeStarted(ActionMode mode) {
@ -229,7 +235,9 @@ public class KiwixMobileActivity extends AppCompatActivity
mToolbarContainer = (RelativeLayout) findViewById(R.id.toolbar_layout);
mProgressBar = (AnimatedProgressBar) findViewById(R.id.progress_view);
exitFullscreenButton = (ImageButton) findViewById(R.id.FullscreenControlButton);
tempForUndo = new KiwixWebView(getApplicationContext()); /** initializing temporary tab value **/
snackbarLayout = (LinearLayout) findViewById(R.id.linearlayout_main); /** Coordinator layout definition**/
RelativeLayout newTabButton = (RelativeLayout) findViewById(R.id.new_tab_button);
newTabButton.setOnClickListener(new View.OnClickListener() {
@ -372,7 +380,21 @@ public class KiwixMobileActivity extends AppCompatActivity
if (mCurrentWebViewIndex == index) {
if (mCurrentWebViewIndex >= 1) {
selectTab(mCurrentWebViewIndex - 1);
tempForUndo = mWebViews.get(index);
mWebViews.remove(index);
Snackbar undoSnackbar = Snackbar.make(snackbarLayout, "Click to restore tab", Snackbar.LENGTH_LONG)
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View v) {
newTab(tempForUndo.getUrl());
}
});
undoSnackbar.setActionTextColor(getResources().getColor(R.color.white_undo));
undoSnackbar.show();
} else {
selectTab(mCurrentWebViewIndex + 1);
mWebViews.remove(index);
@ -1180,7 +1202,6 @@ public class KiwixMobileActivity extends AppCompatActivity
}
@Override
public void onPause() {
super.onPause();