Skip to content

Commit

Permalink
Merge branch 'master' into snowflake_bridge_script
Browse files Browse the repository at this point in the history
  • Loading branch information
n8fr8 committed Jul 16, 2024
2 parents ba8a254 + b610f94 commit c8a13af
Show file tree
Hide file tree
Showing 45 changed files with 251 additions and 281 deletions.
Binary file modified OrbotLib/OrbotLib.aar
Binary file not shown.
4 changes: 2 additions & 2 deletions app-tv/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ android {
defaultConfig {
applicationId "org.torproject.android.tv"
minSdkVersion 23
targetSdkVersion 33
targetSdkVersion 34
}

buildTypes {
Expand All @@ -22,7 +22,7 @@ android {
dimension "teevee"
minSdkVersion 23
applicationId 'org.torproject.android.tv'
compileSdkVersion 33
compileSdkVersion 34
versionCode 10020000
versionName 'orbot-tv-1.0.1-tor-0.4.7.14'
archivesBaseName = "Orbot-TV-$versionName"
Expand Down
18 changes: 9 additions & 9 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ android {
applicationId "org.torproject.android"
versionName getVersionName()
minSdkVersion 23
compileSdkVersion 33
targetSdkVersion 33
compileSdk 34
targetSdkVersion 34
multiDexEnabled true
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
archivesBaseName = "Orbot"
Expand All @@ -47,7 +47,7 @@ android {
fullperm {
dimension "free"
applicationId 'org.torproject.android'
versionCode 1721300100
versionCode 1722300100
versionName getVersionName()
archivesBaseName = "Orbot-${versionName}"
}
Expand Down Expand Up @@ -103,14 +103,14 @@ android {
namespace 'org.torproject.android'
}
dependencies {
implementation "androidx.core:core-ktx:1.8.0"
implementation "androidx.core:core-ktx:1.13.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
// Kotlin
implementation "androidx.navigation:navigation-fragment-ktx:2.5.3"
implementation "androidx.navigation:navigation-ui-ktx:2.5.3"
implementation "androidx.navigation:navigation-fragment-ktx:2.7.7"
implementation "androidx.navigation:navigation-ui-ktx:2.7.7"

//root detection
implementation 'com.scottyab:rootbeer-lib:0.1.0'
Expand Down
7 changes: 4 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

<!-- for Android 13 -->
<!-- For Android 13 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

<!-- For Android 14 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>

<queries>
<intent>
Expand All @@ -40,8 +42,7 @@
android:theme="@style/DefaultTheme"
tools:replace="android:allowBackup"
android:hasFragileUserData="false"
android:taskAffinity=""
>
android:taskAffinity="">

<activity android:name=".OrbotActivity"
android:excludeFromRecents="false"
Expand Down
40 changes: 4 additions & 36 deletions app/src/main/java/org/torproject/android/ConnectFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ import android.content.Context
import android.content.Intent
import android.content.res.ColorStateList
import android.graphics.Paint
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.VpnService
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
Expand All @@ -19,10 +16,14 @@ import android.view.ViewGroup
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import android.widget.*

import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment

import net.freehaven.tor.control.TorControlCommands

import org.torproject.android.core.NetworkUtils.isNetworkAvailable
import org.torproject.android.core.putNotSystem
import org.torproject.android.service.OrbotConstants
import org.torproject.android.service.OrbotService
Expand Down Expand Up @@ -78,7 +79,6 @@ class ConnectFragment : Fragment(), ConnectionHelperCallbacks,
if (!isNetworkAvailable(requireContext())) {
doLayoutNoInternet(requireContext())
} else {

when (lastStatus) {
OrbotConstants.STATUS_OFF -> doLayoutOff()
OrbotConstants.STATUS_STARTING -> doLayoutStarting(requireContext())
Expand All @@ -88,7 +88,6 @@ class ConnectFragment : Fragment(), ConnectionHelperCallbacks,
doLayoutOff()
}
}

}


Expand All @@ -97,37 +96,6 @@ class ConnectFragment : Fragment(), ConnectionHelperCallbacks,
return view
}

private fun isNetworkAvailable(context: Context?): Boolean {
if (context == null) return false
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val capabilities =
connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
if (capabilities != null) {
when {
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> {
return true
}

capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> {
return true
}

capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> {
return true
}
}
}
} else {
val activeNetworkInfo = connectivityManager.activeNetworkInfo
if (activeNetworkInfo != null && activeNetworkInfo.isConnected) {
return true
}
}
return false
}

private fun stopTorAndVpn() {
sendIntentToService(OrbotConstants.ACTION_STOP)
sendIntentToService(OrbotConstants.ACTION_STOP_VPN)
Expand Down
15 changes: 7 additions & 8 deletions app/src/main/java/org/torproject/android/OrbotActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -215,21 +215,20 @@ class OrbotActivity : BaseActivity() {
allCircumventionAttemptsFailed = false
return
}
var shouldDoOffLayout = true
if (Prefs.getConnectionPathway().equals(Prefs.PATHWAY_SMART)) {
shouldDoOffLayout = false
if (!Prefs.getConnectionPathway().equals(Prefs.PATHWAY_SMART) && fragConnect.isAdded && fragConnect.context != null) {
fragConnect.doLayoutOff()
}
if (shouldDoOffLayout && fragConnect.isAdded) fragConnect.doLayoutOff()
} else fragConnect.doLayoutOff()
} else if (fragConnect.isAdded && fragConnect.context != null) {
fragConnect.doLayoutOff()
}
}

OrbotConstants.STATUS_STARTING -> fragConnect.doLayoutStarting(this@OrbotActivity)
OrbotConstants.STATUS_ON -> fragConnect.doLayoutOn(this@OrbotActivity)
OrbotConstants.STATUS_STARTING -> if (fragConnect.isAdded && fragConnect.context != null) fragConnect.doLayoutStarting(this@OrbotActivity)
OrbotConstants.STATUS_ON -> if (fragConnect.isAdded && fragConnect.context != null) fragConnect.doLayoutOn(this@OrbotActivity)
OrbotConstants.STATUS_STOPPING -> {}
}

previousReceivedTorStatus = status

}

OrbotConstants.LOCAL_ACTION_LOG -> {
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/java/org/torproject/android/ui/LogBottomSheet.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import android.widget.Toast

import com.google.android.material.floatingactionbutton.FloatingActionButton

import org.torproject.android.OrbotBottomSheetDialogFragment
import org.torproject.android.R

Expand All @@ -25,7 +27,7 @@ class LogBottomSheet : OrbotBottomSheetDialogFragment() {
tvLog = v.findViewById(R.id.orbotLog)
tvLog.text = buffer.toString()

v.findViewById<Button>(R.id.btnCopyLog).setOnClickListener {
v.findViewById<FloatingActionButton>(R.id.btnCopyLog).setOnClickListener {
val clipboard = context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip: ClipData = ClipData.newPlainText("log", tvLog.text)
clipboard.setPrimaryClip(clip)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.torproject.android.ui.v3onionservice

import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.PowerManager
import android.provider.Settings
import android.view.View

import androidx.fragment.app.FragmentActivity

import com.google.android.material.snackbar.Snackbar

import org.torproject.android.R

object PermissionManager {
private const val SNACK_BAR_DURATION = 5000

@JvmStatic
fun requestBatteryPermissions(activity: FragmentActivity, view: View) {
val packageName = activity.packageName
val pm = activity.applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager

if (pm.isIgnoringBatteryOptimizations(packageName)) {
return
}

Snackbar.make(view, R.string.consider_disable_battery_optimizations,
SNACK_BAR_DURATION).setAction(R.string.disable) {
val intent = Intent().apply {
action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
data = Uri.parse("package:$packageName")
}
activity.startActivity(intent)
}.show()
}

@JvmStatic
fun requestDropBatteryPermissions(activity: FragmentActivity, view: View) {
val pm = activity.applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager
if (!pm.isIgnoringBatteryOptimizations(activity.packageName)) {
return
}

Snackbar.make(view, R.string.consider_enable_battery_optimizations,
SNACK_BAR_DURATION).setAction(R.string.enable) {
val intent = Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
activity.startActivity(intent)
}.show()
}
}
11 changes: 11 additions & 0 deletions app/src/main/res/drawable/ic_copy_log.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?attr/colorControlNormal"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M360,720Q327,720 303.5,696.5Q280,673 280,640L280,160Q280,127 303.5,103.5Q327,80 360,80L720,80Q753,80 776.5,103.5Q800,127 800,160L800,640Q800,673 776.5,696.5Q753,720 720,720L360,720ZM360,640L720,640Q720,640 720,640Q720,640 720,640L720,160Q720,160 720,160Q720,160 720,160L360,160Q360,160 360,160Q360,160 360,160L360,640Q360,640 360,640Q360,640 360,640ZM200,880Q167,880 143.5,856.5Q120,833 120,800L120,240L200,240L200,800Q200,800 200,800Q200,800 200,800L640,800L640,880L200,880ZM360,640Q360,640 360,640Q360,640 360,640L360,160Q360,160 360,160Q360,160 360,160L360,160Q360,160 360,160Q360,160 360,160L360,640Q360,640 360,640Q360,640 360,640L360,640Z"/>
</vector>
2 changes: 1 addition & 1 deletion app/src/main/res/layout/config_connection_bottom_sheet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="32dp"
android:layout_marginStart="64dp"/>
app:layout_constraintEnd_toEndOf="parent" />

<TextView
android:id="@+id/tvConfigSubHeader"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/custom_bridge_bottom_sheet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginStart="118dp" />
app:layout_constraintEnd_toEndOf="parent" />

<TextView
android:textColor="@android:color/white"
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/res/layout/kindess_config_bottom_sheet.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/new_background"
android:paddingStart="10dp"
android:paddingEnd="10dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent">
xmlns:app="http://schemas.android.com/apk/res-auto">

<View
android:id="@+id/handle"
Expand Down
Loading

0 comments on commit c8a13af

Please sign in to comment.