Browse Source

Add missing annotations, clean up reactive code, simplify methods

master
Anthony Restaino 9 years ago
parent
commit
de4fdc86e0
  1. 10
      app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java
  2. 43
      app/src/main/java/acr/browser/lightning/activity/TabsManager.java
  3. 4
      app/src/main/java/acr/browser/lightning/react/Subscriber.java
  4. 4
      app/src/main/java/acr/browser/lightning/react/Subscription.java
  5. 18
      app/src/main/java/acr/browser/lightning/view/LightningView.java

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

@ -359,8 +359,11 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -359,8 +359,11 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath());
}
mTabsManager.restoreTabsAndHandleIntent(this, getIntent(), isIncognito())
mTabsManager.initializeTabs(this, getIntent(), isIncognito())
.subscribe(new Subscription<Void>() {
@Override
public void onNext(Void item) {}
@Override
public void onComplete() {
// At this point we always have at least a tab in the tab manager
@ -368,11 +371,6 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -368,11 +371,6 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
mProxyUtils.checkForProxy(BrowserActivity.this);
}
@Override
public void onNext(Void item) {
}
});
}

43
app/src/main/java/acr/browser/lightning/activity/TabsManager.java

@ -61,12 +61,12 @@ public class TabsManager { @@ -61,12 +61,12 @@ public class TabsManager {
* @param intent the intent that started the browser activity.
* @param incognito whether or not we are in incognito mode.
*/
public synchronized Observable<Void> restoreTabsAndHandleIntent(@NonNull final Activity activity,
public synchronized Observable<Void> initializeTabs(@NonNull final Activity activity,
@Nullable final Intent intent,
final boolean incognito) {
return Observable.create(new Action<Void>() {
@Override
public void onSubscribe(final Subscriber<Void> subscriber) {
public void onSubscribe(@NonNull final Subscriber<Void> subscriber) {
// If incognito, only create one tab, do not handle intent
@ -85,10 +85,26 @@ public class TabsManager { @@ -85,10 +85,26 @@ public class TabsManager {
mTabList.clear();
mCurrentTab = null;
if (mPreferenceManager.getRestoreLostTabsEnabled()) {
restoreState()
.subscribeOn(Schedulers.worker())
.observeOn(Schedulers.main())
.subscribe(new Subscription<Bundle>() {
restoreLostTabs(url, activity, subscriber);
}
}
});
}
private void restoreLostTabs(final String url, final Activity activity,
final Subscriber subscriber) {
restoreState().subscribeOn(Schedulers.worker())
.observeOn(Schedulers.main()).subscribe(new Subscription<Bundle>() {
@Override
public void onNext(Bundle item) {
LightningView tab = newTab(activity, "", false);
if (tab.getWebView() != null) {
tab.getWebView().restoreState(item);
}
}
@Override
public void onComplete() {
if (url != null) {
@ -113,22 +129,9 @@ public class TabsManager { @@ -113,22 +129,9 @@ public class TabsManager {
}
subscriber.onComplete();
}
@Override
public void onNext(Bundle item) {
LightningView tab = newTab(activity, "", false);
if (tab.getWebView() != null) {
tab.getWebView().restoreState(item);
}
}
});
}
}
});
}
/**
* Return the tab at the given position in tabs list, or
* null if position is not in tabs list range.
@ -319,7 +322,7 @@ public class TabsManager { @@ -319,7 +322,7 @@ public class TabsManager {
private Observable<Bundle> restoreState() {
return Observable.create(new Action<Bundle>() {
@Override
public void onSubscribe(Subscriber<Bundle> subscriber) {
public void onSubscribe(@NonNull Subscriber<Bundle> subscriber) {
Bundle savedState = FileUtils.readBundleFromStorage(mApp, BUNDLE_STORAGE);
if (savedState != null) {
Log.d(Constants.TAG, "Restoring previous WebView state now");

4
app/src/main/java/acr/browser/lightning/react/Subscriber.java

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
package acr.browser.lightning.react;
public interface Subscriber<T> {
void onComplete();
void onNext(T item);
void onComplete();
}

4
app/src/main/java/acr/browser/lightning/react/Subscription.java

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
package acr.browser.lightning.react;
public interface Subscription<T> {
void onComplete();
void onNext(T item);
void onComplete();
}

18
app/src/main/java/acr/browser/lightning/view/LightningView.java

@ -376,33 +376,30 @@ public class LightningView { @@ -376,33 +376,30 @@ public class LightningView {
getPathObservable("appcache")
.subscribeOn(Schedulers.worker())
.subscribe(new Subscription<File>() {
@Override
public void onComplete() {}
@Override
public void onNext(File item) {
settings.setAppCachePath(item.getPath());
}
@Override
public void onComplete() {}
});
getPathObservable("geolocation")
.subscribeOn(Schedulers.worker())
.subscribe(new Subscription<File>() {
@Override
public void onComplete() {}
@Override
public void onNext(File item) {
settings.setGeolocationDatabasePath(item.getPath());
}
@Override
public void onComplete() {}
});
getPathObservable("databases")
.subscribeOn(Schedulers.worker())
.subscribe(new Subscription<File>() {
@Override
public void onComplete() {}
@Override
public void onNext(File item) {
if (API < Build.VERSION_CODES.KITKAT) {
@ -410,6 +407,9 @@ public class LightningView { @@ -410,6 +407,9 @@ public class LightningView {
settings.setDatabasePath(item.getPath());
}
}
@Override
public void onComplete() {}
});
}

Loading…
Cancel
Save