Browse Source

Add ability to close all tabs except current tab

master
Anthony Restaino 9 years ago
parent
commit
f1467a9a96
  1. 12
      app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java
  2. 12
      app/src/main/java/acr/browser/lightning/browser/BrowserPresenter.java
  3. 1
      app/src/main/res/values/strings.xml

12
app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java

@ -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;

12
app/src/main/java/acr/browser/lightning/browser/BrowserPresenter.java

@ -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);

1
app/src/main/res/values/strings.xml

@ -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>

Loading…
Cancel
Save