Add ability to close all tabs except current tab

This commit is contained in:
Anthony Restaino 2016-02-05 22:17:15 -05:00
parent 941f54d615
commit f1467a9a96
3 changed files with 21 additions and 4 deletions

View File

@ -834,19 +834,23 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
} }
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line); android.R.layout.simple_list_item_1);
adapter.add(this.getString(R.string.close_tab));
adapter.add(this.getString(R.string.close_all_tabs)); adapter.add(this.getString(R.string.close_all_tabs));
adapter.add(this.getString(R.string.close_other_tabs));
adapter.add(this.getString(R.string.close_tab));
builder.setAdapter(adapter, new DialogInterface.OnClickListener() { builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
switch (which) { switch (which) {
case 0: case 0:
deleteTab(position); closeBrowser();
break; break;
case 1: case 1:
closeBrowser(); mPresenter.closeAllOtherTabs();
break;
case 2:
deleteTab(position);
break; break;
default: default:
break; break;

View File

@ -77,6 +77,18 @@ public class BrowserPresenter {
mCurrentTab = newTab; mCurrentTab = newTab;
} }
public void closeAllOtherTabs() {
while (mTabsModel.last() != mTabsModel.indexOfCurrentTab()) {
deleteTab(mTabsModel.last());
}
while (0 != mTabsModel.indexOfCurrentTab()) {
deleteTab(0);
}
}
public void deleteTab(int position) { public void deleteTab(int position) {
final LightningView tabToDelete = mTabsModel.getTabAtPosition(position); final LightningView tabToDelete = mTabsModel.getTabAtPosition(position);

View File

@ -193,6 +193,7 @@
<string name="settings_about_explain">Details about version, author and license.</string> <string name="settings_about_explain">Details about version, author and license.</string>
<string name="close_tab">Close tab</string> <string name="close_tab">Close tab</string>
<string name="close_all_tabs">Close all tabs</string> <string name="close_all_tabs">Close all tabs</string>
<string name="close_other_tabs">Close other tabs</string>
<string name="third_party">Block 3rd Party Cookies</string> <string name="third_party">Block 3rd Party Cookies</string>
<string name="color_mode">Enable Color Mode</string> <string name="color_mode">Enable Color Mode</string>
<string name="reading_mode">Reader Mode</string> <string name="reading_mode">Reader Mode</string>