initial i2p mod commit

This commit is contained in:
R4SAS 2018-11-19 15:26:02 +03:00
parent ca7da585bd
commit 3cd9e0d4d2
153 changed files with 926 additions and 5109 deletions

View File

@ -13,6 +13,15 @@ android {
vectorDrawables.useSupportLibrary = true
}
signingConfigs {
r4sas {
storeFile file("store.jks")
storePassword "storepass"
keyAlias "keyalias"
keyPassword "keypass"
}
}
sourceSets {
lightningPlus.setRoot('src/LightningPlus')
lightningLite.setRoot('src/LightningLite')
@ -28,6 +37,7 @@ android {
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.r4sas
proguardFiles 'proguard-project.txt'
}
}
@ -35,13 +45,13 @@ android {
productFlavors {
lightningPlus {
buildConfigField "boolean", "FULL_VERSION", "Boolean.parseBoolean(\"true\")"
applicationId "acr.browser.lightning"
applicationId "org.purplei2p.lightning"
versionCode project.versionCode_plus
}
lightningLite {
buildConfigField "boolean", "FULL_VERSION", "Boolean.parseBoolean(\"false\")"
applicationId "acr.browser.barebones"
applicationId "org.purplei2p.barebones"
versionCode project.versionCode_lite
}
}
@ -92,8 +102,6 @@ dependencies {
compile 'com.anthonycr.grant:permissions:1.1.2'
// proxy support
compile 'net.i2p.android:client:0.8'
compile 'com.squareup.okhttp3:okhttp:3.8.0'
// tor proxy

View File

@ -34,7 +34,7 @@
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class acr.browser.lightning.reading.*
-keep public class org.purplei2p.lightning.reading.*
-keep class org.lucasr.twowayview.** { *; }
-keepattributes *Annotation*
@ -68,7 +68,7 @@
}
# Without this rule, openFileChooser does not get called on KitKat
-keep class acr.browser.lightning.view.LightningView$LightningChromeClient {
-keep class org.purplei2p.lightning.view.LightningView$LightningChromeClient {
void openFileChooser(android.webkit.ValueCallback);
void openFileChooser(android.webkit.ValueCallback, java.lang.String);
void openFileChooser(android.webkit.ValueCallback, java.lang.String, java.lang.String);
@ -104,10 +104,6 @@
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
# The I2P Java API bundled inside the I2P Android client library contains
# references to javax.naming classes that Android doesn't have. But those
# classes are never used on Android, and it is safe to ignore the warnings.
-dontwarn net.i2p.crypto.CertUtil
-dontwarn org.apache.http.conn.ssl.DefaultHostnameVerifier
-dontwarn org.apache.http.HttpHost

View File

@ -2,7 +2,7 @@
<!-- Copyright 2014 A.C.R. Development -->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="acr.browser.lightning"
package="org.purplei2p.lightning"
android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,95 +0,0 @@
package acr.browser.lightning.di;
import javax.inject.Singleton;
import acr.browser.lightning.browser.activity.BrowserActivity;
import acr.browser.lightning.reading.activity.ReadingActivity;
import acr.browser.lightning.browser.TabsManager;
import acr.browser.lightning.browser.activity.ThemableBrowserActivity;
import acr.browser.lightning.settings.activity.ThemableSettingsActivity;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.browser.BrowserPresenter;
import acr.browser.lightning.browser.SearchBoxModel;
import acr.browser.lightning.constant.BookmarkPage;
import acr.browser.lightning.constant.DownloadsPage;
import acr.browser.lightning.constant.HistoryPage;
import acr.browser.lightning.constant.StartPage;
import acr.browser.lightning.dialog.LightningDialogBuilder;
import acr.browser.lightning.download.DownloadHandler;
import acr.browser.lightning.download.LightningDownloadListener;
import acr.browser.lightning.settings.fragment.BookmarkSettingsFragment;
import acr.browser.lightning.browser.fragment.BookmarksFragment;
import acr.browser.lightning.settings.fragment.DebugSettingsFragment;
import acr.browser.lightning.settings.fragment.GeneralSettingsFragment;
import acr.browser.lightning.settings.fragment.LightningPreferenceFragment;
import acr.browser.lightning.settings.fragment.PrivacySettingsFragment;
import acr.browser.lightning.browser.fragment.TabsFragment;
import acr.browser.lightning.search.SearchEngineProvider;
import acr.browser.lightning.search.SuggestionsAdapter;
import acr.browser.lightning.utils.ProxyUtils;
import acr.browser.lightning.view.LightningChromeClient;
import acr.browser.lightning.view.LightningView;
import acr.browser.lightning.view.LightningWebClient;
import dagger.Component;
@Singleton
@Component(modules = {AppModule.class})
public interface AppComponent {
void inject(BrowserActivity activity);
void inject(BookmarksFragment fragment);
void inject(BookmarkSettingsFragment fragment);
void inject(LightningDialogBuilder builder);
void inject(TabsFragment fragment);
void inject(LightningView lightningView);
void inject(ThemableBrowserActivity activity);
void inject(LightningPreferenceFragment fragment);
void inject(BrowserApp app);
void inject(ProxyUtils proxyUtils);
void inject(ReadingActivity activity);
void inject(LightningWebClient webClient);
void inject(ThemableSettingsActivity activity);
void inject(LightningDownloadListener listener);
void inject(PrivacySettingsFragment fragment);
void inject(StartPage startPage);
void inject(HistoryPage historyPage);
void inject(BookmarkPage bookmarkPage);
void inject(DownloadsPage downloadsPage);
void inject(BrowserPresenter presenter);
void inject(TabsManager manager);
void inject(DebugSettingsFragment fragment);
void inject(SuggestionsAdapter suggestionsAdapter);
void inject(LightningChromeClient chromeClient);
void inject(DownloadHandler downloadHandler);
void inject(SearchBoxModel searchBoxModel);
void inject(SearchEngineProvider searchEngineProvider);
void inject(GeneralSettingsFragment generalSettingsFragment);
}

View File

@ -1,112 +0,0 @@
package acr.browser.lightning.search;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.search.engine.AskSearch;
import acr.browser.lightning.search.engine.BaiduSearch;
import acr.browser.lightning.search.engine.BaseSearchEngine;
import acr.browser.lightning.search.engine.BingSearch;
import acr.browser.lightning.search.engine.CustomSearch;
import acr.browser.lightning.search.engine.DuckLiteSearch;
import acr.browser.lightning.search.engine.DuckSearch;
import acr.browser.lightning.search.engine.GoogleSearch;
import acr.browser.lightning.search.engine.StartPageMobileSearch;
import acr.browser.lightning.search.engine.StartPageSearch;
import acr.browser.lightning.search.engine.YahooSearch;
import acr.browser.lightning.search.engine.YandexSearch;
/**
* The model that provides the search engine based
* on the user's preference.
*/
public class SearchEngineProvider {
@Inject PreferenceManager mPreferenceManager;
@Inject
public SearchEngineProvider() {
BrowserApp.getAppComponent().inject(this);
}
@NonNull
public BaseSearchEngine getCurrentSearchEngine() {
switch (mPreferenceManager.getSearchChoice()) {
case 0:
return new CustomSearch(mPreferenceManager.getSearchUrl());
case 1:
default:
return new GoogleSearch();
case 2:
return new AskSearch();
case 3:
return new BingSearch();
case 4:
return new YahooSearch();
case 5:
return new StartPageSearch();
case 6:
return new StartPageMobileSearch();
case 7:
return new DuckSearch();
case 8:
return new DuckLiteSearch();
case 9:
return new BaiduSearch();
case 10:
return new YandexSearch();
}
}
public int mapSearchEngineToPreferenceIndex(@NonNull BaseSearchEngine searchEngine) {
if (searchEngine instanceof CustomSearch) {
return 0;
} else if (searchEngine instanceof GoogleSearch) {
return 1;
} else if (searchEngine instanceof AskSearch) {
return 2;
} else if (searchEngine instanceof BingSearch) {
return 3;
} else if (searchEngine instanceof YahooSearch) {
return 4;
} else if (searchEngine instanceof StartPageSearch) {
return 5;
} else if (searchEngine instanceof StartPageMobileSearch) {
return 6;
} else if (searchEngine instanceof DuckSearch) {
return 7;
} else if (searchEngine instanceof DuckLiteSearch) {
return 8;
} else if (searchEngine instanceof BaiduSearch) {
return 9;
} else if (searchEngine instanceof YandexSearch) {
return 10;
} else {
throw new UnsupportedOperationException("Unknown search engine provided: " + searchEngine.getClass());
}
}
@NonNull
public List<BaseSearchEngine> getAllSearchEngines() {
return new ArrayList<BaseSearchEngine>(11) {{
add(new CustomSearch(mPreferenceManager.getSearchUrl()));
add(new GoogleSearch());
add(new AskSearch());
add(new BingSearch());
add(new YahooSearch());
add(new StartPageSearch());
add(new StartPageMobileSearch());
add(new DuckSearch());
add(new DuckLiteSearch());
add(new BaiduSearch());
add(new YandexSearch());
}};
}
}

View File

@ -1,13 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Ask search engine.
*/
class AskSearch : BaseSearchEngine(
"file:///android_asset/ask.png",
Constants.ASK_SEARCH,
R.string.search_engine_ask
)

View File

@ -1,15 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Baidu search engine.
*
* See http://www.baidu.com/img/bdlogo.gif for the icon.
*/
class BaiduSearch : BaseSearchEngine(
"file:///android_asset/baidu.png",
Constants.BAIDU_SEARCH,
R.string.search_engine_baidu
)

View File

@ -1,16 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Bing search engine.
*
* See http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Bing_logo_%282013%29.svg/500px-Bing_logo_%282013%29.svg.png
* for the icon.
*/
class BingSearch : BaseSearchEngine(
"file:///android_asset/bing.png",
Constants.BING_SEARCH,
R.string.search_engine_bing
)

View File

@ -1,15 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Google search engine.
*
* See https://www.google.com/images/srpr/logo11w.png for the icon.
*/
class GoogleSearch : BaseSearchEngine(
"file:///android_asset/google.png",
Constants.GOOGLE_SEARCH,
R.string.search_engine_google
)

View File

@ -1,13 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The StartPage mobile search engine.
*/
class StartPageMobileSearch : BaseSearchEngine(
"file:///android_asset/startpage.png",
Constants.STARTPAGE_MOBILE_SEARCH,
R.string.search_engine_startpage_mobile
)

View File

@ -1,13 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The StartPage search engine.
*/
class StartPageSearch : BaseSearchEngine(
"file:///android_asset/startpage.png",
Constants.STARTPAGE_SEARCH,
R.string.search_engine_startpage
)

View File

@ -1,16 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Yahoo search engine.
*
* See http://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Yahoo%21_logo.svg/799px-Yahoo%21_logo.svg.png
* for the icon.
*/
class YahooSearch : BaseSearchEngine(
"file:///android_asset/yahoo.png",
Constants.YAHOO_SEARCH,
R.string.search_engine_yahoo
)

View File

@ -1,16 +0,0 @@
package acr.browser.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
/**
* The Yandex search engine.
*
* See http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Yandex.svg/600px-Yandex.svg.png
* for the icon.
*/
class YandexSearch : BaseSearchEngine(
"file:///android_asset/yandex.png",
Constants.YANDEX_SEARCH,
R.string.search_engine_yandex
)

View File

@ -1,68 +0,0 @@
package acr.browser.lightning.search.suggestions;
import android.app.Application;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
/**
* Search suggestions provider for Google search engine.
*/
public class GoogleSuggestionsModel extends BaseSuggestionsModel {
@NonNull private static final String ENCODING = "UTF-8";
@Nullable private static XmlPullParser sXpp;
@NonNull private final String mSearchSubtitle;
public GoogleSuggestionsModel(@NonNull Application application) {
super(application, ENCODING);
mSearchSubtitle = application.getString(R.string.suggestion);
}
@NonNull
protected String createQueryUrl(@NonNull String query, @NonNull String language) {
return "https://suggestqueries.google.com/complete/search?output=toolbar&hl="
+ language + "&q=" + query;
}
@Override
protected void parseResults(@NonNull InputStream inputStream, @NonNull List<HistoryItem> results) throws Exception {
BufferedInputStream bufferedInput = new BufferedInputStream(inputStream);
XmlPullParser parser = getParser();
parser.setInput(bufferedInput, ENCODING);
int eventType = parser.getEventType();
int counter = 0;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG && "suggestion".equals(parser.getName())) {
String suggestion = parser.getAttributeValue(null, "data");
results.add(new HistoryItem(mSearchSubtitle + " \"" + suggestion + '"',
suggestion, R.drawable.ic_search));
counter++;
if (counter >= MAX_RESULTS) {
break;
}
}
eventType = parser.next();
}
}
@NonNull
private static synchronized XmlPullParser getParser() throws XmlPullParserException {
if (sXpp == null) {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
sXpp = factory.newPullParser();
}
return sXpp;
}
}

View File

@ -1,4 +1,4 @@
package acr.browser.lightning;
package org.purplei2p.lightning;
import android.app.Activity;
import android.app.Application;
@ -20,17 +20,17 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkExporter;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.database.bookmark.legacy.LegacyBookmarkManager;
import acr.browser.lightning.di.AppComponent;
import acr.browser.lightning.di.AppModule;
import acr.browser.lightning.di.DaggerAppComponent;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.MemoryLeakUtils;
import acr.browser.lightning.utils.Preconditions;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkExporter;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.database.bookmark.legacy.LegacyBookmarkManager;
import org.purplei2p.lightning.di.AppComponent;
import org.purplei2p.lightning.di.AppModule;
import org.purplei2p.lightning.di.DaggerAppComponent;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.MemoryLeakUtils;
import org.purplei2p.lightning.utils.Preconditions;
public class BrowserApp extends Application {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning;
package org.purplei2p.lightning;
import android.content.Intent;
import android.os.Build;
@ -12,7 +12,7 @@ import com.anthonycr.bonsai.Completable;
import com.anthonycr.bonsai.CompletableAction;
import com.anthonycr.bonsai.CompletableSubscriber;
import acr.browser.lightning.browser.activity.BrowserActivity;
import org.purplei2p.lightning.browser.activity.BrowserActivity;
@SuppressWarnings("deprecation")
public class IncognitoActivity extends BrowserActivity {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning;
package org.purplei2p.lightning;
import android.content.Intent;
import android.os.Build;
@ -13,7 +13,7 @@ import com.anthonycr.bonsai.Completable;
import com.anthonycr.bonsai.CompletableAction;
import com.anthonycr.bonsai.CompletableSubscriber;
import acr.browser.lightning.browser.activity.BrowserActivity;
import org.purplei2p.lightning.browser.activity.BrowserActivity;
@SuppressWarnings("deprecation")
public class MainActivity extends BrowserActivity {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.activity;
package org.purplei2p.lightning.activity;
import android.content.res.Configuration;
import android.os.Bundle;
@ -13,7 +13,7 @@ import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import acr.browser.lightning.R;
import org.purplei2p.lightning.R;
/**
* A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.adblock;
package org.purplei2p.lightning.adblock;
import android.app.Application;
import android.content.res.AssetManager;
@ -24,10 +24,10 @@ import java.util.Set;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.BuildConfig;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.StringBuilderUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.BuildConfig;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.StringBuilderUtils;
import org.purplei2p.lightning.utils.Utils;
@Singleton
public class AdBlock {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.animation;
package org.purplei2p.lightning.animation;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;

View File

@ -1,8 +1,8 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
import android.support.annotation.NonNull;
import acr.browser.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.HistoryItem;
public interface BookmarksView {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
import android.app.Activity;
import android.app.Application;
@ -14,17 +14,17 @@ import com.anthonycr.bonsai.Schedulers;
import javax.inject.Inject;
import acr.browser.lightning.BuildConfig;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.BookmarkPage;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.constant.StartPage;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.BuildConfig;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.BookmarkPage;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.constant.StartPage;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.UrlUtils;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.utils.UrlUtils;
import org.purplei2p.lightning.view.LightningView;
/**
* Presenter in charge of keeping track of

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
import android.content.DialogInterface;
import android.support.annotation.NonNull;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
import android.app.Application;
import android.support.annotation.NonNull;
@ -7,11 +7,11 @@ import android.text.TextUtils;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.UrlUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.UrlUtils;
import org.purplei2p.lightning.utils.Utils;
/**
* A UI model for the search box.

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
import android.app.Activity;
import android.app.Application;
@ -30,18 +30,18 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.BookmarkPage;
import acr.browser.lightning.constant.DownloadsPage;
import acr.browser.lightning.constant.HistoryPage;
import acr.browser.lightning.constant.StartPage;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.UrlUtils;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.BookmarkPage;
import org.purplei2p.lightning.constant.DownloadsPage;
import org.purplei2p.lightning.constant.HistoryPage;
import org.purplei2p.lightning.constant.StartPage;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.UrlUtils;
import org.purplei2p.lightning.view.LightningView;
/**
* A manager singleton that holds all the {@link LightningView}

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser;
package org.purplei2p.lightning.browser;
public interface TabsView {

View File

@ -2,7 +2,7 @@
* Copyright 2015 Anthony Restaino
*/
package acr.browser.lightning.browser.activity;
package org.purplei2p.lightning.browser.activity;
import android.app.Activity;
import android.app.Dialog;
@ -89,44 +89,44 @@ import java.io.IOException;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.reading.activity.ReadingActivity;
import acr.browser.lightning.browser.BookmarksView;
import acr.browser.lightning.browser.BrowserPresenter;
import acr.browser.lightning.browser.BrowserView;
import acr.browser.lightning.IncognitoActivity;
import acr.browser.lightning.browser.SearchBoxModel;
import acr.browser.lightning.browser.TabsManager;
import acr.browser.lightning.browser.TabsView;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.constant.DownloadsPage;
import acr.browser.lightning.constant.HistoryPage;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.database.history.HistoryModel;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.dialog.LightningDialogBuilder;
import acr.browser.lightning.browser.fragment.BookmarksFragment;
import acr.browser.lightning.browser.fragment.TabsFragment;
import acr.browser.lightning.interpolator.BezierDecelerateInterpolator;
import acr.browser.lightning.receiver.NetworkReceiver;
import acr.browser.lightning.search.SearchEngineProvider;
import acr.browser.lightning.search.SuggestionsAdapter;
import acr.browser.lightning.search.engine.BaseSearchEngine;
import acr.browser.lightning.settings.activity.SettingsActivity;
import acr.browser.lightning.utils.DrawableUtils;
import acr.browser.lightning.utils.IntentUtils;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.ProxyUtils;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.utils.UrlUtils;
import acr.browser.lightning.utils.Utils;
import acr.browser.lightning.utils.WebUtils;
import acr.browser.lightning.view.Handlers;
import acr.browser.lightning.view.LightningView;
import acr.browser.lightning.view.SearchView;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.reading.activity.ReadingActivity;
import org.purplei2p.lightning.browser.BookmarksView;
import org.purplei2p.lightning.browser.BrowserPresenter;
import org.purplei2p.lightning.browser.BrowserView;
import org.purplei2p.lightning.IncognitoActivity;
import org.purplei2p.lightning.browser.SearchBoxModel;
import org.purplei2p.lightning.browser.TabsManager;
import org.purplei2p.lightning.browser.TabsView;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.constant.DownloadsPage;
import org.purplei2p.lightning.constant.HistoryPage;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.database.history.HistoryModel;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.dialog.LightningDialogBuilder;
import org.purplei2p.lightning.browser.fragment.BookmarksFragment;
import org.purplei2p.lightning.browser.fragment.TabsFragment;
import org.purplei2p.lightning.interpolator.BezierDecelerateInterpolator;
import org.purplei2p.lightning.receiver.NetworkReceiver;
import org.purplei2p.lightning.search.SearchEngineProvider;
import org.purplei2p.lightning.search.SuggestionsAdapter;
import org.purplei2p.lightning.search.engine.BaseSearchEngine;
import org.purplei2p.lightning.settings.activity.SettingsActivity;
import org.purplei2p.lightning.utils.DrawableUtils;
import org.purplei2p.lightning.utils.IntentUtils;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.ProxyUtils;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.UrlUtils;
import org.purplei2p.lightning.utils.Utils;
import org.purplei2p.lightning.utils.WebUtils;
import org.purplei2p.lightning.view.Handlers;
import org.purplei2p.lightning.view.LightningView;
import org.purplei2p.lightning.view.SearchView;
import butterknife.BindView;
import butterknife.ButterKnife;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser.activity;
package org.purplei2p.lightning.browser.activity;
import android.content.Intent;
import android.content.res.Configuration;
@ -9,10 +9,10 @@ import android.support.v7.app.AppCompatActivity;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.ThemeUtils;
public abstract class ThemableBrowserActivity extends AppCompatActivity {

View File

@ -1,8 +1,8 @@
package acr.browser.lightning.browser.bookmark;
package org.purplei2p.lightning.browser.bookmark;
import android.support.annotation.Nullable;
import acr.browser.lightning.browser.BookmarksView;
import org.purplei2p.lightning.browser.BookmarksView;
/**
* The UI model representing the current folder shown

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser.fragment;
package org.purplei2p.lightning.browser.fragment;
import android.app.Activity;
import android.content.Context;
@ -33,24 +33,24 @@ import java.util.concurrent.ConcurrentHashMap;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.browser.bookmark.BookmarkUiModel;
import acr.browser.lightning.reading.activity.ReadingActivity;
import acr.browser.lightning.browser.TabsManager;
import acr.browser.lightning.animation.AnimationUtils;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.browser.BookmarksView;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.dialog.LightningDialogBuilder;
import acr.browser.lightning.favicon.FaviconModel;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.SubscriptionUtils;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.browser.bookmark.BookmarkUiModel;
import org.purplei2p.lightning.reading.activity.ReadingActivity;
import org.purplei2p.lightning.browser.TabsManager;
import org.purplei2p.lightning.animation.AnimationUtils;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.browser.BookmarksView;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.dialog.LightningDialogBuilder;
import org.purplei2p.lightning.favicon.FaviconModel;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.SubscriptionUtils;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.view.LightningView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.browser.fragment;
package org.purplei2p.lightning.browser.fragment;
import android.app.Activity;
import android.content.Context;
@ -33,19 +33,19 @@ import android.widget.TextView;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.browser.TabsManager;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.browser.TabsView;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.browser.fragment.anim.HorizontalItemAnimator;
import acr.browser.lightning.browser.fragment.anim.VerticalItemAnimator;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.DrawableUtils;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.utils.Utils;
import acr.browser.lightning.view.BackgroundDrawable;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.browser.TabsManager;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.browser.TabsView;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.browser.fragment.anim.HorizontalItemAnimator;
import org.purplei2p.lightning.browser.fragment.anim.VerticalItemAnimator;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.DrawableUtils;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.Utils;
import org.purplei2p.lightning.view.BackgroundDrawable;
import org.purplei2p.lightning.view.LightningView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.browser.fragment.anim;
package org.purplei2p.lightning.browser.fragment.anim;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
@ -29,7 +29,7 @@ import android.view.animation.AccelerateInterpolator;
import java.util.ArrayList;
import java.util.List;
import acr.browser.lightning.interpolator.BezierDecelerateInterpolator;
import org.purplei2p.lightning.interpolator.BezierDecelerateInterpolator;
/**
* This implementation of {@link RecyclerView.ItemAnimator} provides basic

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.browser.fragment.anim;
package org.purplei2p.lightning.browser.fragment.anim;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
@ -29,7 +29,7 @@ import android.view.animation.AccelerateInterpolator;
import java.util.ArrayList;
import java.util.List;
import acr.browser.lightning.interpolator.BezierDecelerateInterpolator;
import org.purplei2p.lightning.interpolator.BezierDecelerateInterpolator;
/**
* This implementation of {@link RecyclerView.ItemAnimator} provides basic

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.constant;
package org.purplei2p.lightning.constant;
import android.app.Activity;
import android.app.Application;
@ -25,15 +25,15 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.favicon.FaviconModel;
import acr.browser.lightning.favicon.FaviconUtils;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.favicon.FaviconModel;
import org.purplei2p.lightning.favicon.FaviconUtils;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.Utils;
public final class BookmarkPage {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.constant;
package org.purplei2p.lightning.constant;
import android.support.annotation.IntDef;
@ -18,16 +18,9 @@ public final class Constants {
public static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; Android 4.4; en-us; Nexus 4 Build/JOP24G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30";
// Search query URLs
public static final String YAHOO_SEARCH = "https://search.yahoo.com/search?p=";
public static final String GOOGLE_SEARCH = "https://www.google.com/search?client=lightning&ie=UTF-8&oe=UTF-8&q=";
public static final String BING_SEARCH = "https://www.bing.com/search?q=";
public static final String LEGWORK_SEARCH = "http://legwork.i2p/yacysearch.html?query=";
public static final String DUCK_SEARCH = "https://duckduckgo.com/?t=lightning&q=";
public static final String DUCK_LITE_SEARCH = "https://duckduckgo.com/lite/?t=lightning&q=";
public static final String STARTPAGE_MOBILE_SEARCH = "https://startpage.com/do/m/mobilesearch?language=english&query=";
public static final String STARTPAGE_SEARCH = "https://startpage.com/do/search?language=english&query=";
public static final String ASK_SEARCH = "http://www.ask.com/web?qsrc=0&o=0&l=dir&qo=LightningBrowser&q=";
public static final String BAIDU_SEARCH = "https://www.baidu.com/s?wd=";
public static final String YANDEX_SEARCH = "https://yandex.ru/yandsearch?lr=21411&text=";
// Custom local page schemes
public static final String SCHEME_HOMEPAGE = Constants.ABOUT + "home";

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.constant;
package org.purplei2p.lightning.constant;
import android.app.Application;
import android.support.annotation.NonNull;
@ -20,13 +20,13 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.downloads.DownloadItem;
import acr.browser.lightning.database.downloads.DownloadsModel;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.downloads.DownloadItem;
import org.purplei2p.lightning.database.downloads.DownloadsModel;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Utils;
public final class DownloadsPage {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.constant;
package org.purplei2p.lightning.constant;
import android.app.Application;
import android.support.annotation.NonNull;
@ -24,12 +24,12 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.history.HistoryModel;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.history.HistoryModel;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Utils;
public class HistoryPage {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.constant;
package org.purplei2p.lightning.constant;
import android.app.Application;
import android.support.annotation.NonNull;
@ -16,11 +16,11 @@ import java.io.IOException;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.search.SearchEngineProvider;
import acr.browser.lightning.search.engine.BaseSearchEngine;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.search.SearchEngineProvider;
import org.purplei2p.lightning.search.engine.BaseSearchEngine;
import org.purplei2p.lightning.utils.Utils;
public class StartPage {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.controller;
package org.purplei2p.lightning.controller;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
@ -14,10 +14,10 @@ import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient.CustomViewCallback;
import acr.browser.lightning.browser.TabsManager;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.dialog.LightningDialogBuilder;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.browser.TabsManager;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.dialog.LightningDialogBuilder;
import org.purplei2p.lightning.view.LightningView;
public interface UIController {

View File

@ -1,13 +1,13 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.database;
package org.purplei2p.lightning.database;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import acr.browser.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Preconditions;
public class HistoryItem implements Comparable<HistoryItem> {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.bookmark;
package org.purplei2p.lightning.database.bookmark;
import android.app.Application;
import android.content.ContentValues;
@ -25,9 +25,9 @@ import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.database.HistoryItem;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.database.HistoryItem;
/**
* The disk backed bookmark database.

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.bookmark;
package org.purplei2p.lightning.database.bookmark;
import android.content.Context;
import android.os.Environment;
@ -27,10 +27,10 @@ import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Utils;
/**
* The class responsible for importing and exporting

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.bookmark;
package org.purplei2p.lightning.database.bookmark;
import android.content.Context;
import android.database.Cursor;
@ -15,8 +15,8 @@ import com.anthonycr.bonsai.SingleSubscriber;
import java.util.ArrayList;
import java.util.List;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.Utils;
public class BookmarkLocalSync {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.bookmark;
package org.purplei2p.lightning.database.bookmark;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -9,7 +9,7 @@ import com.anthonycr.bonsai.Single;
import java.util.List;
import acr.browser.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.HistoryItem;
/**
* The interface that should be used to

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.bookmark.legacy;
package org.purplei2p.lightning.database.bookmark.legacy;
import android.app.Application;
import android.support.annotation.NonNull;
@ -20,9 +20,9 @@ import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.Utils;
@Deprecated
public class LegacyBookmarkManager {

View File

@ -1,12 +1,12 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.database.downloads;
package org.purplei2p.lightning.database.downloads;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import acr.browser.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Preconditions;
public class DownloadItem implements Comparable<DownloadItem> {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.downloads;
package org.purplei2p.lightning.database.downloads;
import android.app.Application;
import android.content.ContentValues;
@ -23,7 +23,7 @@ import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.R;
import org.purplei2p.lightning.R;
/**
* The disk backed download database.

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.downloads;
package org.purplei2p.lightning.database.downloads;
import android.support.annotation.NonNull;
import android.support.annotation.WorkerThread;

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.database.history;
package org.purplei2p.lightning.database.history;
import android.app.Application;
import android.content.ContentValues;
@ -26,8 +26,8 @@ import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.database.HistoryItem;
/**

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.database.history;
package org.purplei2p.lightning.database.history;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -8,7 +8,7 @@ import com.anthonycr.bonsai.Single;
import java.util.List;
import acr.browser.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.HistoryItem;
/**
* An interface that should be used to communicate

View File

@ -0,0 +1,95 @@
package org.purplei2p.lightning.di;
import javax.inject.Singleton;
import org.purplei2p.lightning.browser.activity.BrowserActivity;
import org.purplei2p.lightning.reading.activity.ReadingActivity;
import org.purplei2p.lightning.browser.TabsManager;
import org.purplei2p.lightning.browser.activity.ThemableBrowserActivity;
import org.purplei2p.lightning.settings.activity.ThemableSettingsActivity;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.browser.BrowserPresenter;
import org.purplei2p.lightning.browser.SearchBoxModel;
import org.purplei2p.lightning.constant.BookmarkPage;
import org.purplei2p.lightning.constant.DownloadsPage;
import org.purplei2p.lightning.constant.HistoryPage;
import org.purplei2p.lightning.constant.StartPage;
import org.purplei2p.lightning.dialog.LightningDialogBuilder;
import org.purplei2p.lightning.download.DownloadHandler;
import org.purplei2p.lightning.download.LightningDownloadListener;
import org.purplei2p.lightning.settings.fragment.BookmarkSettingsFragment;
import org.purplei2p.lightning.browser.fragment.BookmarksFragment;
import org.purplei2p.lightning.settings.fragment.DebugSettingsFragment;
import org.purplei2p.lightning.settings.fragment.GeneralSettingsFragment;
import org.purplei2p.lightning.settings.fragment.LightningPreferenceFragment;
import org.purplei2p.lightning.settings.fragment.PrivacySettingsFragment;
import org.purplei2p.lightning.browser.fragment.TabsFragment;
import org.purplei2p.lightning.search.SearchEngineProvider;
import org.purplei2p.lightning.search.SuggestionsAdapter;
import org.purplei2p.lightning.utils.ProxyUtils;
import org.purplei2p.lightning.view.LightningChromeClient;
import org.purplei2p.lightning.view.LightningView;
import org.purplei2p.lightning.view.LightningWebClient;
import dagger.Component;
@Singleton
@Component(modules = {AppModule.class})
public interface AppComponent {
void inject(BrowserActivity activity);
void inject(BookmarksFragment fragment);
void inject(BookmarkSettingsFragment fragment);
void inject(LightningDialogBuilder builder);
void inject(TabsFragment fragment);
void inject(LightningView lightningView);
void inject(ThemableBrowserActivity activity);
void inject(LightningPreferenceFragment fragment);
void inject(BrowserApp app);
void inject(ProxyUtils proxyUtils);
void inject(ReadingActivity activity);
void inject(LightningWebClient webClient);
void inject(ThemableSettingsActivity activity);
void inject(LightningDownloadListener listener);
void inject(PrivacySettingsFragment fragment);
void inject(StartPage startPage);
void inject(HistoryPage historyPage);
void inject(BookmarkPage bookmarkPage);
void inject(DownloadsPage downloadsPage);
void inject(BrowserPresenter presenter);
void inject(TabsManager manager);
void inject(DebugSettingsFragment fragment);
void inject(SuggestionsAdapter suggestionsAdapter);
void inject(LightningChromeClient chromeClient);
void inject(DownloadHandler downloadHandler);
void inject(SearchBoxModel searchBoxModel);
void inject(SearchEngineProvider searchEngineProvider);
void inject(GeneralSettingsFragment generalSettingsFragment);
}

View File

@ -1,21 +1,19 @@
package acr.browser.lightning.di;
package org.purplei2p.lightning.di;
import android.app.Application;
import android.content.Context;
import android.support.annotation.NonNull;
import net.i2p.android.ui.I2PAndroidHelper;
import javax.inject.Singleton;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.bookmark.BookmarkDatabase;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.database.downloads.DownloadsDatabase;
import acr.browser.lightning.database.downloads.DownloadsModel;
import acr.browser.lightning.database.history.HistoryDatabase;
import acr.browser.lightning.database.history.HistoryModel;
import acr.browser.lightning.download.DownloadHandler;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.bookmark.BookmarkDatabase;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.database.downloads.DownloadsDatabase;
import org.purplei2p.lightning.database.downloads.DownloadsModel;
import org.purplei2p.lightning.database.history.HistoryDatabase;
import org.purplei2p.lightning.database.history.HistoryModel;
import org.purplei2p.lightning.download.DownloadHandler;
import dagger.Module;
import dagger.Provides;
@ -65,11 +63,4 @@ public class AppModule {
return new DownloadHandler();
}
@NonNull
@Provides
@Singleton
public I2PAndroidHelper provideI2PAndroidHelper() {
return new I2PAndroidHelper(mApp.getApplicationContext());
}
}

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.dialog;
package org.purplei2p.lightning.dialog;
import android.app.Activity;
import android.app.Dialog;
@ -22,9 +22,9 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.utils.DeviceUtils;
import acr.browser.lightning.utils.ResourceUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.utils.DeviceUtils;
import org.purplei2p.lightning.utils.ResourceUtils;
/**
* Copyright 7/31/2016 Anthony Restaino

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.dialog;
package org.purplei2p.lightning.dialog;
import android.app.Activity;
import android.app.Dialog;
@ -21,21 +21,21 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.MainActivity;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.BookmarkPage;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.database.downloads.DownloadsModel;
import acr.browser.lightning.database.history.HistoryModel;
import acr.browser.lightning.download.DownloadHandler;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.IntentUtils;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.UrlUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.MainActivity;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.BookmarkPage;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.database.downloads.DownloadsModel;
import org.purplei2p.lightning.database.history.HistoryModel;
import org.purplei2p.lightning.download.DownloadHandler;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.IntentUtils;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.UrlUtils;
/**
* TODO Rename this class it doesn't build dialogs only for bookmarks

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.download;
package org.purplei2p.lightning.download;
import android.app.Activity;
import android.app.Dialog;
@ -30,19 +30,19 @@ import java.io.IOException;
import javax.inject.Inject;
import acr.browser.lightning.BuildConfig;
import acr.browser.lightning.R;
import acr.browser.lightning.MainActivity;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.database.downloads.DownloadItem;
import acr.browser.lightning.database.downloads.DownloadsModel;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.Utils;
import acr.browser.lightning.view.LightningView;
import org.purplei2p.lightning.BuildConfig;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.MainActivity;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.controller.UIController;
import org.purplei2p.lightning.database.downloads.DownloadItem;
import org.purplei2p.lightning.database.downloads.DownloadsModel;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.Utils;
import org.purplei2p.lightning.view.LightningView;
/**
* Handle download requests

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.download;
package org.purplei2p.lightning.download;
import android.app.Activity;
import android.app.DownloadManager;
@ -18,8 +18,8 @@ import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import acr.browser.lightning.R;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.utils.Utils;
/**
* This class is used to pull down the http headers of a given URL so that we

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.download;
package org.purplei2p.lightning.download;
import android.Manifest;
import android.app.Activity;
@ -13,11 +13,11 @@ import android.util.Log;
import android.webkit.DownloadListener;
import android.webkit.URLUtil;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.downloads.DownloadsModel;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.downloads.DownloadsModel;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.preference.PreferenceManager;
import com.anthonycr.grant.PermissionsManager;
import com.anthonycr.grant.PermissionsResultAction;

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.download;
package org.purplei2p.lightning.download;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.favicon;
package org.purplei2p.lightning.favicon;
import android.app.Application;
import android.graphics.Bitmap;
@ -26,11 +26,11 @@ import java.io.IOException;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.R;
import acr.browser.lightning.utils.DrawableUtils;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.utils.DrawableUtils;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.Utils;
/**
* Reactive model that can fetch favicons

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.favicon;
package org.purplei2p.lightning.favicon;
import android.net.Uri;
import android.support.annotation.NonNull;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.interpolator;
package org.purplei2p.lightning.interpolator;
import android.support.annotation.NonNull;
import android.support.v4.view.animation.PathInterpolatorCompat;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.preference;
package org.purplei2p.lightning.preference;
import android.content.Context;
import android.content.SharedPreferences;
@ -8,8 +8,8 @@ import android.support.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.utils.FileUtils;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.utils.FileUtils;
@Singleton
public class PreferenceManager {
@ -68,9 +68,8 @@ public class PreferenceManager {
}
public enum Suggestion {
SUGGESTION_GOOGLE,
SUGGESTION_LEGWORK,
SUGGESTION_DUCK,
SUGGESTION_BAIDU,
SUGGESTION_NONE
}
@ -86,7 +85,7 @@ public class PreferenceManager {
@NonNull
public Suggestion getSearchSuggestionChoice() {
try {
return Suggestion.valueOf(mPrefs.getString(Name.SEARCH_SUGGESTIONS, Suggestion.SUGGESTION_GOOGLE.name()));
return Suggestion.valueOf(mPrefs.getString(Name.SEARCH_SUGGESTIONS, Suggestion.SUGGESTION_LEGWORK.name()));
} catch (IllegalArgumentException ignored) {
return Suggestion.SUGGESTION_NONE;
}
@ -200,7 +199,7 @@ public class PreferenceManager {
}
public int getProxyPort() {
return mPrefs.getInt(Name.USE_PROXY_PORT, 8118);
return mPrefs.getInt(Name.USE_PROXY_PORT, 4444);
}
public int getReadingTextSize() {
@ -230,7 +229,7 @@ public class PreferenceManager {
@NonNull
public String getSearchUrl() {
return mPrefs.getString(Name.SEARCH_URL, Constants.GOOGLE_SEARCH);
return mPrefs.getString(Name.SEARCH_URL, Constants.LEGWORK_SEARCH);
}
public boolean getTextReflowEnabled() {
@ -250,12 +249,12 @@ public class PreferenceManager {
}
public boolean getUseProxy() {
return mPrefs.getBoolean(Name.USE_PROXY, false);
return mPrefs.getBoolean(Name.USE_PROXY, true);
}
@Constants.Proxy
public int getProxyChoice() {
@Constants.Proxy int proxy = mPrefs.getInt(Name.PROXY_CHOICE, Constants.NO_PROXY);
@Constants.Proxy int proxy = mPrefs.getInt(Name.PROXY_CHOICE, Constants.PROXY_I2P);
switch (proxy) {
case Constants.NO_PROXY:
case Constants.PROXY_ORBOT:

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import android.util.Log;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import java.io.BufferedReader;
import java.io.BufferedWriter;
@ -33,7 +33,7 @@ import java.util.zip.GZIPInputStream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.utils.Utils;
/**
* Class to fetch articles. This class is thread safe.

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import org.jsoup.nodes.Element;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import java.io.Serializable;
import java.util.Collection;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
/**
*

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package acr.browser.lightning.reading;
package org.purplei2p.lightning.reading;
import org.jsoup.nodes.Element;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.reading.activity;
package org.purplei2p.lightning.reading.activity;
import android.animation.ObjectAnimator;
import android.app.Dialog;
@ -25,11 +25,11 @@ import android.widget.TextView;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.preference.PreferenceManager;
import com.anthonycr.bonsai.Schedulers;
import com.anthonycr.bonsai.Single;
@ -38,10 +38,10 @@ import com.anthonycr.bonsai.SingleOnSubscribe;
import com.anthonycr.bonsai.SingleSubscriber;
import com.anthonycr.bonsai.Subscription;
import acr.browser.lightning.reading.HtmlFetcher;
import acr.browser.lightning.reading.JResult;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.reading.HtmlFetcher;
import org.purplei2p.lightning.reading.JResult;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.Utils;
import butterknife.BindView;
import butterknife.ButterKnife;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.receiver;
package org.purplei2p.lightning.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;

View File

@ -0,0 +1,70 @@
package org.purplei2p.lightning.search;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.search.engine.BaseSearchEngine;
import org.purplei2p.lightning.search.engine.CustomSearch;
import org.purplei2p.lightning.search.engine.DuckLiteSearch;
import org.purplei2p.lightning.search.engine.DuckSearch;
import org.purplei2p.lightning.search.engine.LegworkSearch;
/**
* The model that provides the search engine based
* on the user's preference.
*/
public class SearchEngineProvider {
@Inject PreferenceManager mPreferenceManager;
@Inject
public SearchEngineProvider() {
BrowserApp.getAppComponent().inject(this);
}
@NonNull
public BaseSearchEngine getCurrentSearchEngine() {
switch (mPreferenceManager.getSearchChoice()) {
case 0:
return new CustomSearch(mPreferenceManager.getSearchUrl());
case 1:
default:
return new LegworkSearch();
case 2:
return new DuckSearch();
case 3:
return new DuckLiteSearch();
}
}
public int mapSearchEngineToPreferenceIndex(@NonNull BaseSearchEngine searchEngine) {
if (searchEngine instanceof CustomSearch) {
return 0;
} else if (searchEngine instanceof LegworkSearch) {
return 1;
} else if (searchEngine instanceof DuckSearch) {
return 2;
} else if (searchEngine instanceof DuckLiteSearch) {
return 3;
} else {
throw new UnsupportedOperationException("Unknown search engine provided: " + searchEngine.getClass());
}
}
@NonNull
public List<BaseSearchEngine> getAllSearchEngines() {
return new ArrayList<BaseSearchEngine>(4) {{
add(new CustomSearch(mPreferenceManager.getSearchUrl()));
add(new LegworkSearch());
add(new DuckSearch());
add(new DuckLiteSearch());
}};
}
}

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.search;
package org.purplei2p.lightning.search;
import android.app.Application;
import android.content.Context;
@ -36,14 +36,14 @@ import java.util.Locale;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.database.history.HistoryModel;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.database.history.HistoryModel;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.ThemeUtils;
public class SuggestionsAdapter extends BaseAdapter implements Filterable {
@ -301,12 +301,10 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
@NonNull
private Single<List<HistoryItem>> getSuggestionsForQuery(@NonNull final String query) {
if (mSuggestionChoice == PreferenceManager.Suggestion.SUGGESTION_GOOGLE) {
return SuggestionsManager.createGoogleQueryObservable(query, mApplication);
if (mSuggestionChoice == PreferenceManager.Suggestion.SUGGESTION_LEGWORK) {
return SuggestionsManager.createLegworkQueryObservable(query, mApplication);
} else if (mSuggestionChoice == PreferenceManager.Suggestion.SUGGESTION_DUCK) {
return SuggestionsManager.createDuckQueryObservable(query, mApplication);
} else if (mSuggestionChoice == PreferenceManager.Suggestion.SUGGESTION_BAIDU) {
return SuggestionsManager.createBaiduQueryObservable(query, mApplication);
} else {
return Single.empty();
}

View File

@ -1,9 +1,8 @@
package acr.browser.lightning.search
package org.purplei2p.lightning.search
import acr.browser.lightning.database.HistoryItem
import acr.browser.lightning.search.suggestions.BaiduSuggestionsModel
import acr.browser.lightning.search.suggestions.DuckSuggestionsModel
import acr.browser.lightning.search.suggestions.GoogleSuggestionsModel
import org.purplei2p.lightning.database.HistoryItem
import org.purplei2p.lightning.search.suggestions.DuckSuggestionsModel
import org.purplei2p.lightning.search.suggestions.LegworkSuggestionsModel
import android.app.Application
import com.anthonycr.bonsai.Single
import com.anthonycr.bonsai.SingleAction
@ -14,20 +13,10 @@ internal object SuggestionsManager {
@Volatile var isRequestInProgress: Boolean = false
@JvmStatic
fun createGoogleQueryObservable(query: String, application: Application) =
fun createLegworkQueryObservable(query: String, application: Application) =
Single.create(SingleAction<List<HistoryItem>> { subscriber ->
isRequestInProgress = true
val results = GoogleSuggestionsModel(application).fetchResults(query)
subscriber.onItem(results)
subscriber.onComplete()
isRequestInProgress = false
})
@JvmStatic
fun createBaiduQueryObservable(query: String, application: Application) =
Single.create(SingleAction<List<HistoryItem>> { subscriber ->
isRequestInProgress = true
val results = BaiduSuggestionsModel(application).fetchResults(query)
val results = LegworkSuggestionsModel(application).fetchResults(query)
subscriber.onItem(results)
subscriber.onComplete()
isRequestInProgress = false

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.search.engine
package org.purplei2p.lightning.search.engine
import android.support.annotation.StringRes

View File

@ -1,6 +1,6 @@
package acr.browser.lightning.search.engine
package org.purplei2p.lightning.search.engine
import acr.browser.lightning.R
import org.purplei2p.lightning.R
/**
* A custom search engine.

View File

@ -1,7 +1,7 @@
package acr.browser.lightning.search.engine
package org.purplei2p.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
import org.purplei2p.lightning.R
import org.purplei2p.lightning.constant.Constants
/**
* The DuckDuckGo Lite search engine.

View File

@ -1,7 +1,7 @@
package acr.browser.lightning.search.engine
package org.purplei2p.lightning.search.engine
import acr.browser.lightning.R
import acr.browser.lightning.constant.Constants
import org.purplei2p.lightning.R
import org.purplei2p.lightning.constant.Constants
/**
* The DuckDuckGo search engine.

View File

@ -0,0 +1,15 @@
package org.purplei2p.lightning.search.engine
import org.purplei2p.lightning.R
import org.purplei2p.lightning.constant.Constants
/**
* The Legwork.I2P search engine.
*
* See http://legwork.i2p/env/grafics/LegworkLogo_200.png for the icon.
*/
class LegworkSearch : BaseSearchEngine(
"file:///android_asset/legwork.png",
Constants.LEGWORK_SEARCH,
R.string.search_engine_legwork
)

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.search.suggestions;
package org.purplei2p.lightning.search.suggestions;
import android.app.Application;
import android.support.annotation.NonNull;
@ -17,9 +17,9 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.Utils;
import okhttp3.Cache;
import okhttp3.CacheControl;
import okhttp3.Interceptor;

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.search.suggestions;
package org.purplei2p.lightning.search.suggestions;
import android.app.Application;
import android.support.annotation.NonNull;
@ -9,9 +9,9 @@ import org.json.JSONObject;
import java.io.InputStream;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.FileUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.FileUtils;
/**
* The search suggestions provider for the DuckDuckGo search engine.

View File

@ -1,53 +1,52 @@
package acr.browser.lightning.search.suggestions;
package org.purplei2p.lightning.search.suggestions;
import android.app.Application;
import android.support.annotation.NonNull;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.InputStream;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.utils.FileUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.utils.FileUtils;
/**
* The search suggestions provider for the Baidu search engine.
* The search suggestions provider for the DuckDuckGo search engine.
*/
public class BaiduSuggestionsModel extends BaseSuggestionsModel {
public final class LegworkSuggestionsModel extends BaseSuggestionsModel {
@NonNull private static final String ENCODING = "UTF-8";
@NonNull private final String mSearchSubtitle;
public BaiduSuggestionsModel(@NonNull Application application) {
public LegworkSuggestionsModel(@NonNull Application application) {
super(application, ENCODING);
mSearchSubtitle = application.getString(R.string.suggestion);
}
@NonNull
@Override
protected String createQueryUrl(@NonNull String query, @NonNull String language) {
// see http://unionsug.baidu.com/su?wd=encodeURIComponent(U)
// see http://suggestion.baidu.com/s?wd=encodeURIComponent(U)&action=opensearch
return "http://suggestion.baidu.com/s?wd=" + query + "&action=opensearch";
return "http://legwork.i2p/suggest.json?query=" + query;
}
@Override
protected void parseResults(@NonNull InputStream inputStream, @NonNull List<HistoryItem> results) throws Exception {
String content = FileUtils.readStringFromStream(inputStream, "GBK");
JSONArray respArray = new JSONArray(content);
JSONArray jsonArray = respArray.getJSONArray(1);
String content = FileUtils.readStringFromStream(inputStream, ENCODING);
JSONArray jsonArray = new JSONArray(content);
int counter = 0;
for (int n = 0, size = jsonArray.length(); n < size; n++) {
String suggestion = jsonArray.getString(n);
JSONObject object = jsonArray.getJSONObject(n);
String suggestion = object.getString("phrase");
results.add(new HistoryItem(mSearchSubtitle + " \"" + suggestion + '"',
suggestion, R.drawable.ic_search));
counter++;
if (counter >= MAX_RESULTS) {
break;
}
}
}
}

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.activity;
package org.purplei2p.lightning.settings.activity;
import android.os.Build;
import android.os.Bundle;
@ -18,8 +18,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
public class SettingsActivity extends ThemableSettingsActivity {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.settings.activity;
package org.purplei2p.lightning.settings.activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
@ -7,11 +7,11 @@ import android.os.Bundle;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.activity.AppCompatPreferenceActivity;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.activity.AppCompatPreferenceActivity;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.ThemeUtils;
public abstract class ThemableSettingsActivity extends AppCompatPreferenceActivity {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.app.Activity;
import android.content.pm.PackageInfo;
@ -11,7 +11,7 @@ import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.util.Log;
import acr.browser.lightning.R;
import org.purplei2p.lightning.R;
public class AboutSettingsFragment extends PreferenceFragment {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.app.Activity;
import android.app.Dialog;
@ -15,9 +15,9 @@ import android.support.v7.app.AlertDialog;
import java.util.Arrays;
import java.util.List;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.dialog.BrowserDialog;
public class AdvancedSettingsFragment extends LightningPreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.Manifest;
import android.app.Activity;
@ -38,17 +38,17 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.database.bookmark.BookmarkExporter;
import acr.browser.lightning.database.bookmark.BookmarkLocalSync;
import acr.browser.lightning.database.bookmark.BookmarkLocalSync.Source;
import acr.browser.lightning.database.bookmark.BookmarkModel;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.utils.Preconditions;
import acr.browser.lightning.utils.SubscriptionUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.database.HistoryItem;
import org.purplei2p.lightning.database.bookmark.BookmarkExporter;
import org.purplei2p.lightning.database.bookmark.BookmarkLocalSync;
import org.purplei2p.lightning.database.bookmark.BookmarkLocalSync.Source;
import org.purplei2p.lightning.database.bookmark.BookmarkModel;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.utils.Preconditions;
import org.purplei2p.lightning.utils.SubscriptionUtils;
import org.purplei2p.lightning.utils.Utils;
public class BookmarkSettingsFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener {

View File

@ -1,4 +1,4 @@
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.app.Activity;
import android.os.Bundle;
@ -9,10 +9,10 @@ import android.support.annotation.NonNull;
import javax.inject.Inject;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.utils.Utils;
public class DebugSettingsFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.app.Activity;
import android.app.Dialog;
@ -19,8 +19,8 @@ import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import acr.browser.lightning.R;
import acr.browser.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.dialog.BrowserDialog;
public class DisplaySettingsFragment extends LightningPreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {

View File

@ -1,7 +1,7 @@
/*
* Copyright 2014 A.C.R. Development
*/
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.app.Activity;
import android.app.Dialog;
@ -26,20 +26,20 @@ import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.BuildConfig;
import acr.browser.lightning.R;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.search.SearchEngineProvider;
import acr.browser.lightning.search.engine.BaseSearchEngine;
import acr.browser.lightning.search.engine.CustomSearch;
import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.ProxyUtils;
import acr.browser.lightning.utils.ThemeUtils;
import acr.browser.lightning.utils.Utils;
import org.purplei2p.lightning.BuildConfig;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.constant.Constants;
import org.purplei2p.lightning.dialog.BrowserDialog;
import org.purplei2p.lightning.search.SearchEngineProvider;
import org.purplei2p.lightning.search.engine.BaseSearchEngine;
import org.purplei2p.lightning.search.engine.CustomSearch;
import org.purplei2p.lightning.utils.FileUtils;
import org.purplei2p.lightning.utils.ProxyUtils;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.Utils;
import static acr.browser.lightning.preference.PreferenceManager.Suggestion;
import static org.purplei2p.lightning.preference.PreferenceManager.Suggestion;
public class GeneralSettingsFragment extends LightningPreferenceFragment implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
@ -125,15 +125,12 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
downloadloc.setSummary(mDownloadLocation);
switch (mPreferenceManager.getSearchSuggestionChoice()) {
case SUGGESTION_GOOGLE:
searchsSuggestions.setSummary(R.string.powered_by_google);
case SUGGESTION_LEGWORK:
searchsSuggestions.setSummary(R.string.powered_by_legwork);
break;
case SUGGESTION_DUCK:
searchsSuggestions.setSummary(R.string.powered_by_duck);
break;
case SUGGESTION_BAIDU:
searchsSuggestions.setSummary(R.string.powered_by_baidu);
break;
case SUGGESTION_NONE:
searchsSuggestions.setSummary(R.string.search_suggestions_off);
break;
@ -409,20 +406,17 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
AlertDialog.Builder picker = new AlertDialog.Builder(mActivity);
picker.setTitle(getResources().getString(R.string.search_suggestions));
int currentChoice = 3;
int currentChoice = 2;
switch (mPreferenceManager.getSearchSuggestionChoice()) {
case SUGGESTION_GOOGLE:
case SUGGESTION_LEGWORK:
currentChoice = 0;
break;
case SUGGESTION_DUCK:
currentChoice = 1;
break;
case SUGGESTION_BAIDU:
currentChoice = 2;
break;
case SUGGESTION_NONE:
currentChoice = 3;
currentChoice = 2;
break;
}
@ -432,18 +426,14 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
mPreferenceManager.setSearchSuggestionChoice(Suggestion.SUGGESTION_GOOGLE);
searchsSuggestions.setSummary(R.string.powered_by_google);
mPreferenceManager.setSearchSuggestionChoice(Suggestion.SUGGESTION_LEGWORK);
searchsSuggestions.setSummary(R.string.powered_by_legwork);
break;
case 1:
mPreferenceManager.setSearchSuggestionChoice(Suggestion.SUGGESTION_DUCK);
searchsSuggestions.setSummary(R.string.powered_by_duck);
break;
case 2:
mPreferenceManager.setSearchSuggestionChoice(Suggestion.SUGGESTION_BAIDU);
searchsSuggestions.setSummary(R.string.powered_by_baidu);
break;
case 3:
mPreferenceManager.setSearchSuggestionChoice(Suggestion.SUGGESTION_NONE);
searchsSuggestions.setSummary(R.string.search_suggestions_off);
break;
@ -461,7 +451,7 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
if (!URLUtil.isAboutUrl(mHomepage)) {
currentHomepage = mHomepage;
} else {
currentHomepage = "https://www.google.com";
currentHomepage = "http://i2pd.i2p";
}
BrowserDialog.showEditText(mActivity,

View File

@ -1,12 +1,12 @@
package acr.browser.lightning.settings.fragment;
package org.purplei2p.lightning.settings.fragment;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import javax.inject.Inject;
import acr.browser.lightning.BrowserApp;
import acr.browser.lightning.preference.PreferenceManager;
import org.purplei2p.lightning.BrowserApp;
import org.purplei2p.lightning.preference.PreferenceManager;
/**
* Simplify {@link PreferenceManager} inject in all the PreferenceFragments

Some files were not shown because too many files have changed in this diff Show More