Compare commits
14 Commits
android-1.
...
android-2.
Author | SHA1 | Date | |
---|---|---|---|
3ab2c83b7b | |||
cb46abca82 | |||
63b345e329 | |||
794b8433d8 | |||
a7891a3674 | |||
7076785ec1 | |||
f8eda45409 | |||
8d0f1689c1 | |||
25ef37cddf | |||
c5936858a2 | |||
17d2e2fc93 | |||
a0e41e5171 | |||
2d1244f339 | |||
9eec1d3348 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -3,3 +3,6 @@ signing.properties
|
||||
.idea
|
||||
.idea/
|
||||
.gradle/
|
||||
local.properties
|
||||
override.properties
|
||||
build
|
19
CHANGELOG
19
CHANGELOG
@ -1,3 +1,22 @@
|
||||
2.0.1
|
||||
* Fixes gitlab#49 by applying MUTABLE or IMMUTABLE flags across all PendingIntents
|
||||
|
||||
2.0.0
|
||||
* Updates router to version 2.0.0
|
||||
* Updates gradle plugin
|
||||
* Remove Firefox from supported browsers list due to lack of about:config support
|
||||
* Add Privacy Browser to supported browsers list and write guide for it
|
||||
|
||||
1.9.1
|
||||
* Switches back to mavenCentral builds
|
||||
* Fixes build process for F-Droid main
|
||||
* Using tag i2p.i2p:i2p-android-1.9.0
|
||||
* Allow b32 and blinded b32 to validate in I2PTunnel UI
|
||||
|
||||
1.9.0
|
||||
* Updates router to version 1.9.0
|
||||
* Using tag i2p.i2p:i2p-android-1.9.0
|
||||
|
||||
1.8.2
|
||||
* This update fixes a bug where Family Keys are incorrectly handled by the Android router, leading
|
||||
to a crash.
|
||||
|
@ -5,11 +5,11 @@ repositories {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
defaultConfig {
|
||||
versionCode 4745270
|
||||
versionCode 4745273
|
||||
versionName "$I2P_ANDROID_VERSION"
|
||||
minSdkVersion 14
|
||||
minSdkVersion 21
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
|
||||
// For Espresso
|
||||
@ -31,15 +31,18 @@ android {
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_7
|
||||
targetCompatibility JavaVersion.VERSION_1_7
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
disable 'MissingDefaultResource'
|
||||
}
|
||||
packagingOptions {
|
||||
exclude 'LICENSE.txt'
|
||||
resources {
|
||||
excludes += ['LICENSE.txt']
|
||||
}
|
||||
}
|
||||
flavorDimensions 'tier'
|
||||
productFlavors {
|
||||
@ -56,7 +59,6 @@ android {
|
||||
applicationId 'net.i2p.android.router'
|
||||
}
|
||||
}
|
||||
buildToolsVersion '28.0.3'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@ -88,6 +90,10 @@ dependencies {
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
}
|
||||
|
||||
project.ext.i2pbase = "../i2p.i2p"
|
||||
def Properties props = new Properties()
|
||||
def propFile = new File(project(':routerjars').projectDir, 'local.properties')
|
||||
|
@ -27,6 +27,8 @@
|
||||
<service
|
||||
android:name=".service.RouterService"
|
||||
android:icon="@drawable/ic_launcher_itoopie"
|
||||
android:enabled="true"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="net.i2p.android.router.service.IRouterState" />
|
||||
@ -35,7 +37,9 @@
|
||||
<provider
|
||||
android:name=".provider.CacheProvider"
|
||||
android:authorities="${applicationId}.provider" />
|
||||
<receiver android:name=".receiver.OnBootReceiver">
|
||||
<receiver
|
||||
android:name=".receiver.OnBootReceiver"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
@ -45,7 +49,8 @@
|
||||
android:name="net.i2p.android.I2PActivity"
|
||||
android:icon="@drawable/ic_launcher_itoopie"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop">
|
||||
android:launchMode="singleTop"
|
||||
android:exported="true">
|
||||
<!-- Console filters -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
@ -109,6 +114,7 @@
|
||||
<activity
|
||||
android:name=".web.WebActivity"
|
||||
android:configChanges="orientation|keyboardHidden"
|
||||
android:exported="true"
|
||||
android:label="I2P Web Browser">
|
||||
<!-- Disabled, this browser is not very secure
|
||||
Temporarily enabled until an alternative browser is ready -->
|
||||
|
@ -102,8 +102,28 @@ public class BrowserListFragment extends Fragment implements
|
||||
getContext().getResources().getStringArray(R.array.supported_browsers));
|
||||
supportedLabels = Arrays.asList(
|
||||
getContext().getResources().getStringArray(R.array.supported_browser_labels));
|
||||
unsupported = Arrays.asList(
|
||||
context.getResources().getStringArray(R.array.unsupported_browsers));
|
||||
unsupported = allBrowsers(context);//Arrays.asList(
|
||||
//context.getResources().getStringArray(R.array.unsupported_browsers));
|
||||
}
|
||||
|
||||
public List<String> allBrowsers(Context context){
|
||||
//try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse("http://www.google.com"));
|
||||
List<ResolveInfo> browserList;
|
||||
PackageManager pm = context.getPackageManager();
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||
// gets all
|
||||
browserList = pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);
|
||||
} else {
|
||||
browserList = pm.queryIntentActivities(intent, 0);
|
||||
}
|
||||
//}catch()
|
||||
List<String> finalResult = new ArrayList<String>();
|
||||
for (ResolveInfo ri : browserList){
|
||||
finalResult.add(ri.resolvePackageName);
|
||||
}
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -94,10 +94,20 @@ public class AndroidSAMSecureSession extends AppCompatActivity implements SAMSec
|
||||
bundle.putBoolean("approveSAMConnection", true);
|
||||
bundle.putString("ID", clientId);
|
||||
intent.putExtras(bundle);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(
|
||||
mCtx, 7656,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT, bundle);
|
||||
PendingIntent pendingIntent;
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
|
||||
pendingIntent = PendingIntent.getActivity(
|
||||
mCtx, 7656,
|
||||
intent,
|
||||
PendingIntent.FLAG_MUTABLE,
|
||||
bundle);
|
||||
} else {
|
||||
pendingIntent = PendingIntent.getActivity(
|
||||
mCtx, 7656,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT,
|
||||
bundle);
|
||||
}
|
||||
String dlgText = mCtx.getString(R.string.settings_confirm_sam) + "\n";//""</br>";
|
||||
dlgText += mCtx.getString(R.string.settings_confirm_sam_id) + clientId + "\n";//""</br>";
|
||||
dlgText += mCtx.getString(R.string.settings_confirm_allow_sam) + "\n";//""</br>";
|
||||
|
@ -71,7 +71,18 @@ class StatusBar {
|
||||
private PendingIntent pendingIntent() {
|
||||
Intent intent = new Intent(mCtx, I2PActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
PendingIntent pi = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
PendingIntent pi = null;
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
|
||||
pi = PendingIntent.getActivity(mCtx,
|
||||
0,
|
||||
intent,
|
||||
PendingIntent.FLAG_MUTABLE);
|
||||
} else {
|
||||
pi = PendingIntent.getActivity(mCtx,
|
||||
0,
|
||||
intent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
}
|
||||
return pi;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,12 @@ public class Notifications {
|
||||
if (c != null) {
|
||||
Intent intent = new Intent(mCtx, c);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
PendingIntent pi = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
PendingIntent pi;
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
|
||||
pi = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_MUTABLE);
|
||||
} else {
|
||||
pi = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
}
|
||||
b.setContentIntent(pi);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<h2>Privacy Brower has native I2P support!</h2>
|
||||
<p>Make sure your I2P router is started before launching Privacy Browser</p>
|
||||
<p>Privacy Browser supports both I2P and Orbot (Tor), but not at the same time.</p>
|
||||
<h2>How to configure Privacy Browser:</h2>
|
||||
<ol>
|
||||
<li>Open the main menu and tap “Settings”</li>
|
||||
<li>Select "Disable Javascript"(Recommended)</li>
|
||||
<li>Select "Enable Incognito Mode"(Optional)</li>
|
||||
<li>Tap the "Proxy" menu item and select "I2P" from the submenu</li>
|
||||
<li>Exit the settings menu.</li>
|
||||
</ol>
|
||||
<a href="https://eyedeekay.github.io/Configuring-Privacy-Browser-for-I2P-on-Android/">A detailed guide with screenshots to is available online</a>
|
||||
</body>
|
||||
</html>
|
@ -109,28 +109,25 @@
|
||||
</string-array>
|
||||
<string-array name="recommended_browsers">
|
||||
<item>acr.browser.lightning</item>
|
||||
<item>io.github.forkmaintainers.iceraven</item>
|
||||
<item>com.stoutner.privacybrowser.standard</item>
|
||||
</string-array>
|
||||
<string-array name="recommended_browser_labels">
|
||||
<item>Lightning</item>
|
||||
<item>IceRaven(With Extension)</item>
|
||||
<item>Privacy Browser</item>
|
||||
</string-array>
|
||||
<string-array name="supported_browsers">
|
||||
<item>org.mozilla.firefox</item>
|
||||
<item>org.mozilla.fennec_fdroid</item>
|
||||
<item>org.gnu.icecat</item>
|
||||
</string-array>
|
||||
<string-array name="supported_browser_labels">
|
||||
<item>Firefox</item>
|
||||
<item>Fennec F-Droid</item>
|
||||
<item>IceCatMobile</item>
|
||||
</string-array>
|
||||
<string-array name="unsupported_browsers">
|
||||
<item>org.mozilla.firefox</item>
|
||||
<item>com.android.chrome</item>
|
||||
<item>com.brave.browser</item>
|
||||
<item>com.android.browser</item>
|
||||
<item>com.sec.android.app.sbrowser</item>
|
||||
<item>com.stoutner.privacybrowser.standard</item>
|
||||
<item>org.gnu.icecat</item>
|
||||
<item>info.guardianproject.browser</item>
|
||||
<item>mobi.mgeek.TunnyBrowser</item>
|
||||
<item>com.lastpass.lpandroid</item>
|
||||
|
@ -15,7 +15,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.3.0'
|
||||
classpath 'com.android.tools.build:gradle:4.2.2'
|
||||
classpath 'com.android.tools.lint:lint-gradle:26.1.1'
|
||||
}
|
||||
}
|
||||
|
@ -14,8 +14,8 @@ POM_DEVELOPER_ID=idk
|
||||
POM_DEVELOPER_NAME=idk
|
||||
POM_DEVELOPER_EMAIL=hankhill19580@gmail.com
|
||||
|
||||
ANDROID_BUILD_TARGET_SDK_VERSION=30
|
||||
ANDROID_BUILD_SDK_VERSION=28
|
||||
ANDROID_BUILD_TARGET_SDK_VERSION=31
|
||||
ANDROID_BUILD_SDK_VERSION=31
|
||||
|
||||
I2P_VERSION=1.9.0-1
|
||||
I2P_ANDROID_VERSION=1.9.0
|
||||
I2P_VERSION=2.0.0
|
||||
I2P_ANDROID_VERSION=2.0.1
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
|
@ -9,7 +9,7 @@ repositories {
|
||||
android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
defaultConfig {
|
||||
minSdkVersion 14
|
||||
minSdkVersion 21
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
}
|
||||
buildTypes {
|
||||
@ -19,13 +19,17 @@ android {
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_7
|
||||
targetCompatibility JavaVersion.VERSION_1_7
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
buildToolsVersion '28.0.3'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -5,7 +5,7 @@ version = '0.9.5'
|
||||
android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
defaultConfig {
|
||||
minSdkVersion 14
|
||||
minSdkVersion 21
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
}
|
||||
buildTypes {
|
||||
@ -15,13 +15,13 @@ android {
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_7
|
||||
targetCompatibility JavaVersion.VERSION_1_7
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
buildToolsVersion '28.0.3'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@ -33,4 +33,8 @@ dependencies {
|
||||
testImplementation 'org.mockito:mockito-core:2.11.0'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
}
|
||||
|
||||
apply from: "${project.rootDir}/gradle/maven-push.gradle"
|
||||
|
Reference in New Issue
Block a user