diff --git a/README.md b/README.md index ec170d8..cf58bc6 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Lightning Browser +# Lightning Browser I2P #### Speed, Simplicity, Security ![](ic_launcher_small.png) #### About fork -That fork of Lightning Browser aims on native support of I2P without ability go clearnet sites. +That fork of Lightning Browser aims on native support of I2P without ability go clearnet sites (if not used outproxy). #### Features * Bookmarks @@ -29,8 +29,6 @@ That fork of Lightning Browser aims on native support of I2P without ability go * ````READ_EXTERNAL_STORAGE````: For downloading files from the browser -* ````ACCESS_FINE_LOCATION````: For sites like Google Maps, it is disabled by default in settings and displays a pop-up asking if a site may use your location when it is enabled - * ````ACCESS_NETWORK_STATE````: Required for the WebView to function by some OEM versions of WebKit #### The Code @@ -49,7 +47,7 @@ Lightning Browser http://mozilla.org/MPL/2.0/ -Coryright 2018 PurpleI2P +Copyright 2018 PurpleI2P Fork of Lightning Browser with same license ``` diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5856ecb..767539c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,18 +8,11 @@ - - - diff --git a/app/src/main/assets/lightning.png b/app/src/main/assets/lightning.png index 0489e75..96b780e 100644 Binary files a/app/src/main/assets/lightning.png and b/app/src/main/assets/lightning.png differ diff --git a/app/src/main/java/org/purplei2p/lightning/preference/PreferenceManager.java b/app/src/main/java/org/purplei2p/lightning/preference/PreferenceManager.java index d0be0ac..e5ebd03 100644 --- a/app/src/main/java/org/purplei2p/lightning/preference/PreferenceManager.java +++ b/app/src/main/java/org/purplei2p/lightning/preference/PreferenceManager.java @@ -24,7 +24,6 @@ public class PreferenceManager { static final String HOMEPAGE = "home"; static final String INCOGNITO_COOKIES = "incognitocookies"; static final String JAVASCRIPT = "java"; - static final String LOCATION = "location"; static final String OVERVIEW_MODE = "overviewmode"; static final String POPUPS = "newwindows"; static final String RESTORE_LOST_TABS = "restoreclosed"; @@ -161,10 +160,6 @@ public class PreferenceManager { return mPrefs.getBoolean(Name.JAVASCRIPT, true); } - public boolean getLocationEnabled() { - return mPrefs.getBoolean(Name.LOCATION, false); - } - public boolean getOverviewModeEnabled() { return mPrefs.getBoolean(Name.OVERVIEW_MODE, true); } @@ -372,10 +367,6 @@ public class PreferenceManager { putBoolean(Name.JAVASCRIPT, enable); } - public void setLocationEnabled(boolean enable) { - putBoolean(Name.LOCATION, enable); - } - public void setOverviewModeEnabled(boolean enable) { putBoolean(Name.OVERVIEW_MODE, enable); } diff --git a/app/src/main/java/org/purplei2p/lightning/settings/fragment/PrivacySettingsFragment.java b/app/src/main/java/org/purplei2p/lightning/settings/fragment/PrivacySettingsFragment.java index 7d275de..706078f 100644 --- a/app/src/main/java/org/purplei2p/lightning/settings/fragment/PrivacySettingsFragment.java +++ b/app/src/main/java/org/purplei2p/lightning/settings/fragment/PrivacySettingsFragment.java @@ -32,7 +32,6 @@ import org.purplei2p.lightning.view.LightningView; public class PrivacySettingsFragment extends LightningPreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener { - private static final String SETTINGS_LOCATION = "location"; private static final String SETTINGS_THIRDPCOOKIES = "third_party"; private static final String SETTINGS_SAVEPASSWORD = "password"; private static final String SETTINGS_CACHEEXIT = "clear_cache_exit"; @@ -68,7 +67,6 @@ public class PrivacySettingsFragment extends LightningPreferenceFragment impleme Preference clearcookies = findPreference(SETTINGS_CLEARCOOKIES); Preference clearwebstorage = findPreference(SETTINGS_CLEARWEBSTORAGE); - CheckBoxPreference cblocation = (CheckBoxPreference) findPreference(SETTINGS_LOCATION); CheckBoxPreference cb3cookies = (CheckBoxPreference) findPreference(SETTINGS_THIRDPCOOKIES); CheckBoxPreference cbsavepasswords = (CheckBoxPreference) findPreference(SETTINGS_SAVEPASSWORD); CheckBoxPreference cbcacheexit = (CheckBoxPreference) findPreference(SETTINGS_CACHEEXIT); @@ -83,7 +81,6 @@ public class PrivacySettingsFragment extends LightningPreferenceFragment impleme clearcookies.setOnPreferenceClickListener(this); clearwebstorage.setOnPreferenceClickListener(this); - cblocation.setOnPreferenceChangeListener(this); cb3cookies.setOnPreferenceChangeListener(this); cbsavepasswords.setOnPreferenceChangeListener(this); cbcacheexit.setOnPreferenceChangeListener(this); @@ -93,7 +90,6 @@ public class PrivacySettingsFragment extends LightningPreferenceFragment impleme cbDoNotTrack.setOnPreferenceChangeListener(this); cbIdentifyingHeaders.setOnPreferenceChangeListener(this); - cblocation.setChecked(mPreferenceManager.getLocationEnabled()); cbsavepasswords.setChecked(mPreferenceManager.getSavePasswordsEnabled()); cbcacheexit.setChecked(mPreferenceManager.getClearCacheExit()); cbhistoryexit.setChecked(mPreferenceManager.getClearHistoryExitEnabled()); @@ -224,9 +220,6 @@ public class PrivacySettingsFragment extends LightningPreferenceFragment impleme @Override public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) { switch (preference.getKey()) { - case SETTINGS_LOCATION: - mPreferenceManager.setLocationEnabled((Boolean) newValue); - return true; case SETTINGS_THIRDPCOOKIES: mPreferenceManager.setBlockThirdPartyCookiesEnabled((Boolean) newValue); return true; diff --git a/app/src/main/java/org/purplei2p/lightning/view/LightningChromeClient.java b/app/src/main/java/org/purplei2p/lightning/view/LightningChromeClient.java index 3006847..35e6105 100644 --- a/app/src/main/java/org/purplei2p/lightning/view/LightningChromeClient.java +++ b/app/src/main/java/org/purplei2p/lightning/view/LightningChromeClient.java @@ -13,14 +13,11 @@ import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; -import android.webkit.GeolocationPermissions; import android.webkit.ValueCallback; import android.webkit.WebChromeClient; import android.webkit.WebView; import com.anthonycr.bonsai.Schedulers; -import com.anthonycr.grant.PermissionsManager; -import com.anthonycr.grant.PermissionsResultAction; import javax.inject.Inject; @@ -33,8 +30,6 @@ import org.purplei2p.lightning.utils.Preconditions; public class LightningChromeClient extends WebChromeClient { - private static final String[] PERMISSIONS = new String[]{Manifest.permission.ACCESS_FINE_LOCATION}; - @NonNull private final Activity mActivity; @NonNull private final LightningView mLightningView; @NonNull private final UIController mUIController; @@ -92,49 +87,6 @@ public class LightningChromeClient extends WebChromeClient { } } - @Override - public void onGeolocationPermissionsShowPrompt(@NonNull final String origin, - @NonNull final GeolocationPermissions.Callback callback) { - PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(mActivity, PERMISSIONS, new PermissionsResultAction() { - @Override - public void onGranted() { - final boolean remember = true; - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setTitle(mActivity.getString(R.string.location)); - String org; - if (origin.length() > 50) { - org = origin.subSequence(0, 50) + "..."; - } else { - org = origin; - } - builder.setMessage(org + mActivity.getString(R.string.message_location)) - .setCancelable(true) - .setPositiveButton(mActivity.getString(R.string.action_allow), - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - callback.invoke(origin, true, remember); - } - }) - .setNegativeButton(mActivity.getString(R.string.action_dont_allow), - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - callback.invoke(origin, false, remember); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - BrowserDialog.setDialogSize(mActivity, alert); - } - - @Override - public void onDenied(String permission) { - //TODO show message and/or turn off setting - } - }); - } - @Override public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) { diff --git a/app/src/main/java/org/purplei2p/lightning/view/LightningView.java b/app/src/main/java/org/purplei2p/lightning/view/LightningView.java index 4ad053c..01eb2b4 100644 --- a/app/src/main/java/org/purplei2p/lightning/view/LightningView.java +++ b/app/src/main/java/org/purplei2p/lightning/view/LightningView.java @@ -292,12 +292,6 @@ public class LightningView { sHomepage = mPreferences.getHomepage(); setColorMode(mPreferences.getRenderingMode()); - if (!mIsIncognitoTab) { - settings.setGeolocationEnabled(mPreferences.getLocationEnabled()); - } else { - settings.setGeolocationEnabled(false); - } - setUserAgent(context, mPreferences.getUserAgentChoice()); if (mPreferences.getSavePasswordsEnabled() && !mIsIncognitoTab) { @@ -429,19 +423,6 @@ public class LightningView { } }); - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - getPathObservable("geolocation").subscribeOn(Schedulers.io()) - .observeOn(Schedulers.main()) - .subscribe(new SingleOnSubscribe() { - @Override - public void onItem(@Nullable File item) { - Preconditions.checkNonNull(item); - //noinspection deprecation - settings.setGeolocationDatabasePath(item.getPath()); - } - }); - } - getPathObservable("databases").subscribeOn(Schedulers.io()) .observeOn(Schedulers.main()) .subscribe(new SingleOnSubscribe() { diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 58c9a9b..693520b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,5 +1,5 @@ - + Молния I2P Создать вкладку Отправить ссылку @@ -10,7 +10,6 @@ Копировать ссылку Вперёд Настройки - Местоположение Сохранять пароли User Agent Новая вкладка @@ -56,6 +55,7 @@ Поисковая система OK Загрузить файл? (%1$s) + Размер неизвестен Отмена Внимание User Agent @@ -93,8 +93,6 @@ Карта памяти недоступна Карта памяти подключена к ПК. Для начала загрузки отключите её от ПК, нажав на уведомление. Включить куки в режиме инкогнито - Вручную - Автоматически Связаться с разработчиками twitter.com/RestainoAnthony Очистить кэш @@ -102,10 +100,8 @@ Закладки импортированы История очищена Куки очищены - Достигнуто максимальное число вкладок Текст скопирован в буфер обмена Ссылка скопирована в буфер обмена - Пользовательский URL Локальный файл недоступен для загрузки Open Source Licenses Искать @@ -119,10 +115,8 @@ сертификат не является доверенным Отправка формы Вы действительно хотите повторно отправить данные? - \nХотите использовать своё местоположение? - Разрешить - Не разрешать Вход + Сообщение сервера: %s Имя пользователя Пароль Подсказки поиска @@ -139,9 +133,6 @@ Прокси Хост: Порт: - Похоже, установлен Orbot. Вы хотите использовать Tor? - Похоже, установлен I2P. Вы хотите использовать I2P? - Пожалуйста, установите Orbot для проксирования через Tor. Да Нет Очищать куки при выходе @@ -152,7 +143,6 @@ Mozilla Public License v. 2.0 Freeware Android Open Source Project - hpHosts Ad Server List Восстановить закрытую вкладку Режим отображения страниц Инвертированный @@ -167,6 +157,7 @@ Сделать резервную копию закладок Восстановить закладки из резервной копии Экспортировать закладки в + Извините! Закладки не могут быть экспортированы! Настройки закладок Не удалось импортировать закладки из файла Выберите файл @@ -209,12 +200,13 @@ Очищать интернет-хранилище при выходе Интернет-хранилище очищено Показывать владки в боковом меню - Перевернуть закладки и вкладки + Перевернуть закладки и вкладки Запрашивать \'Do Not Track\' Удалять идентифиц. заголовки Добавить на дом. экран Ярлык добавлен на домашний экран Удалить все закладки + Не удалось открыть файл FAQ Часто задаваемые вопросы @@ -223,4 +215,25 @@ Настройки отладки LeakCanary Чтобы изменения вступили в силу, необходимо перезапустить приложение. + + + Открыть в новой вкладке + Открыть в фоновой вкладке + Открыть в приватной вкладке + Удалить закладку + Редактировать закладку + Удалить из истории + Сохранить изображение + Скопировать ссылку + Переименовать папку + Удалить папку + Закрыть браузер + Удалить загрузку + Удалить все загрузки + + + Пользовательский URL + Legwork + DuckDuckGo + DuckDuckGo Lite \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c5dfdb..1a1bdb6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,5 @@ - Lightning I2P New tab Share @@ -11,7 +10,6 @@ Copy link Forward Settings - Location access Save your passwords User agent Homepage @@ -95,8 +93,6 @@ USB storage unavailable The storage is busy. To allow downloads, touch \'Turn Off USB Storage\' in the notification. Enable cookies in incognito mode - Manual - Auto Contact me twitter.com/RestainoAnthony Clear cache @@ -104,7 +100,6 @@ Bookmarks were imported History cleared Cookies cleared - Max tabs reached Text copied to clipboard Link copied to clipboard Local file has been blocked from loading @@ -120,9 +115,6 @@ Certificate is not trusted Form resubmission Would you like to resend the data? - \nWould like to use your location - Allow - Don\'t allow Sign in Server message: %s Username @@ -141,9 +133,6 @@ Manual proxy Host: Port: - It looks like you have Orbot installed. Do you want to use Tor? - It looks like you have I2P installed. Do you want to use I2P? - Please install Orbot in order to proxy with Tor. Yes No Clear cookies on exit @@ -154,7 +143,6 @@ Mozilla Public License v. 2.0 Freeware Android Open Source Project - hpHosts Ad Server List Reopened old tab Rendering mode Inverted @@ -211,7 +199,6 @@ Clear web storage Clear web storage on exit Web storage cleared - Hosts file ad blocking source Show tabs in navigation drawer Swap bookmark and tab drawers Request \'Do Not Track\' @@ -219,7 +206,6 @@ Add to home screen Shortcut added to home screen Delete all bookmarks - Upgrade to Lightning Plus to block ads This file doesn\'t exist anymore FAQ diff --git a/app/src/main/res/xml/preference_about.xml b/app/src/main/res/xml/preference_about.xml index 0de6fb9..9c243d0 100644 --- a/app/src/main/res/xml/preference_about.xml +++ b/app/src/main/res/xml/preference_about.xml @@ -41,17 +41,6 @@ android:value="SELF" /> - - - - - diff --git a/app/src/main/res/xml/preference_privacy.xml b/app/src/main/res/xml/preference_privacy.xml index b0a5e4a..728dcfa 100644 --- a/app/src/main/res/xml/preference_privacy.xml +++ b/app/src/main/res/xml/preference_privacy.xml @@ -2,10 +2,6 @@ -