Browse Source

Fixed bugs with opening file:// urls in the browser via intent

master
Anthony Restaino 8 years ago
parent
commit
6e108dbbff
  1. 46
      app/src/main/java/acr/browser/lightning/activity/TabsManager.java
  2. 15
      app/src/main/java/acr/browser/lightning/browser/BrowserPresenter.java

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

@ -28,11 +28,13 @@ import acr.browser.lightning.constant.StartPage; @@ -28,11 +28,13 @@ import acr.browser.lightning.constant.StartPage;
import acr.browser.lightning.database.BookmarkManager;
import acr.browser.lightning.database.HistoryDatabase;
import acr.browser.lightning.preference.PreferenceManager;
import com.anthonycr.bonsai.Action;
import com.anthonycr.bonsai.Observable;
import com.anthonycr.bonsai.OnSubscribe;
import com.anthonycr.bonsai.Schedulers;
import com.anthonycr.bonsai.Subscriber;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.UrlUtils;
import acr.browser.lightning.view.LightningView;
@ -144,7 +146,7 @@ public class TabsManager { @@ -144,7 +146,7 @@ public class TabsManager {
@NonNull final Subscriber subscriber) {
restoreState().subscribeOn(Schedulers.io())
.observeOn(Schedulers.main()).subscribe(new OnSubscribe<Bundle>() {
.observeOn(Schedulers.main()).subscribe(new OnSubscribe<Bundle>() {
@Override
public void onNext(Bundle item) {
LightningView tab = newTab(activity, "", false);
@ -168,24 +170,40 @@ public class TabsManager { @@ -168,24 +170,40 @@ public class TabsManager {
if (url.startsWith(Constants.FILE)) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setCancelable(true)
.setTitle(R.string.title_warning)
.setMessage(R.string.message_blocked_local)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.action_open, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
newTab(activity, url, false);
.setTitle(R.string.title_warning)
.setMessage(R.string.message_blocked_local)
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (mTabList.isEmpty()) {
newTab(activity, null, false);
}
}).show();
finishInitialization();
subscriber.onComplete();
}
})
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.action_open, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
newTab(activity, url, false);
}
}).show();
} else {
newTab(activity, url, false);
if (mTabList.isEmpty()) {
newTab(activity, null, false);
}
finishInitialization();
subscriber.onComplete();
}
} else {
if (mTabList.isEmpty()) {
newTab(activity, null, false);
}
finishInitialization();
subscriber.onComplete();
}
if (mTabList.size() == 0) {
newTab(activity, null, false);
}
finishInitialization();
subscriber.onComplete();
}
});
}

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

@ -236,15 +236,20 @@ public class BrowserPresenter { @@ -236,15 +236,20 @@ public class BrowserPresenter {
@Override
public void onClick(DialogInterface dialog, int which) {
newTab(url, true);
mShouldClose = true;
LightningView tab = mTabsModel.lastTab();
if (tab != null) {
tab.setTag(true);
}
}
});
} else {
newTab(url, true);
}
mShouldClose = true;
LightningView tab = mTabsModel.lastTab();
if (tab != null) {
tab.setTag(true);
mShouldClose = true;
LightningView tab = mTabsModel.lastTab();
if (tab != null) {
tab.setTag(true);
}
}
}
}

Loading…
Cancel
Save