Browse Source

Smoothly close browser by closing the activity after the drawers are closed, removed bus event

master
Anthony Restaino 8 years ago
parent
commit
6308677438
  1. 42
      app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java
  2. 8
      app/src/main/java/acr/browser/lightning/activity/IncognitoActivity.java
  3. 10
      app/src/main/java/acr/browser/lightning/activity/MainActivity.java
  4. 6
      app/src/main/java/acr/browser/lightning/bus/BrowserEvents.java
  5. 7
      app/src/main/java/acr/browser/lightning/fragment/TabsFragment.java

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

@ -1064,9 +1064,12 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -1064,9 +1064,12 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
mBrowserFrame.setBackgroundColor(mBackgroundColor);
performExitCleanUp();
mBrowserFrame.removeAllViews();
int size = mTabsManager.size();
mTabsManager.shutdown();
mCurrentView = null;
mEventBus.post(new BrowserEvents.TabsChanged());
for (int n = 0; n < size; n++) {
mTabsView.tabRemoved(n);
}
finish();
}
@ -1393,8 +1396,39 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -1393,8 +1396,39 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
mDrawerLayout.openDrawer(mDrawerRight);
}
void closeDrawers() {
/**
* This method closes any open drawer and executes
* the runnable after the drawers are completely closed.
*
* @param runnable an optional runnable to run after
* the drawers are closed.
*/
void closeDrawers(@Nullable final Runnable runnable) {
if (!mDrawerLayout.isDrawerOpen(mDrawerLeft) && !mDrawerLayout.isDrawerOpen(mDrawerRight)) {
if (runnable != null) {
runnable.run();
return;
}
}
mDrawerLayout.closeDrawers();
mDrawerLayout.addDrawerListener(new DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {}
@Override
public void onDrawerOpened(View drawerView) {}
@Override
public void onDrawerClosed(View drawerView) {
if (runnable != null) {
runnable.run();
}
mDrawerLayout.removeDrawerListener(this);
}
@Override
public void onDrawerStateChanged(int newState) {}
});
}
@Override
@ -1913,7 +1947,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -1913,7 +1947,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
case R.id.action_toggle_desktop:
currentTab.toggleDesktopUA(this);
currentTab.reload();
closeDrawers();
closeDrawers(null);
break;
}
}
@ -2174,7 +2208,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -2174,7 +2208,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
final LightningView currentTab = mTabsManager.getCurrentTab();
if (currentTab != null) {
currentTab.loadHomepage();
closeDrawers();
closeDrawers(null);
}
}

8
app/src/main/java/acr/browser/lightning/activity/IncognitoActivity.java

@ -61,7 +61,11 @@ public class IncognitoActivity extends BrowserActivity { @@ -61,7 +61,11 @@ public class IncognitoActivity extends BrowserActivity {
@Override
public void closeActivity() {
closeDrawers();
closeBrowser();
closeDrawers(new Runnable() {
@Override
public void run() {
closeBrowser();
}
});
}
}

10
app/src/main/java/acr/browser/lightning/activity/MainActivity.java

@ -65,9 +65,13 @@ public class MainActivity extends BrowserActivity { @@ -65,9 +65,13 @@ public class MainActivity extends BrowserActivity {
@Override
public void closeActivity() {
closeDrawers();
performExitCleanUp();
moveTaskToBack(true);
closeDrawers(new Runnable() {
@Override
public void run() {
performExitCleanUp();
moveTaskToBack(true);
}
});
}

6
app/src/main/java/acr/browser/lightning/bus/BrowserEvents.java

@ -40,12 +40,6 @@ public final class BrowserEvents { @@ -40,12 +40,6 @@ public final class BrowserEvents {
public static class UserPressedBack {
}
/**
* Notify that the user closed or opened a tab
*/
public static class TabsChanged {
}
/**
*
*/

7
app/src/main/java/acr/browser/lightning/fragment/TabsFragment.java

@ -183,13 +183,6 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -183,13 +183,6 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
mBus.unregister(this);
}
@Subscribe
public void tabsChanged(final BrowserEvents.TabsChanged event) {
if (mTabsAdapter != null) {
mTabsAdapter.notifyDataSetChanged();
}
}
@Override
public void onClick(@NonNull View v) {
switch (v.getId()) {

Loading…
Cancel
Save