Deps update, initial rename

This commit is contained in:
partisan 2025-04-29 23:54:43 +02:00
parent 2ff2448739
commit 199fd246f2
27 changed files with 121 additions and 88 deletions

View file

@ -1,10 +1,10 @@
name: Android CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# on:
# push:
# branches: [ main ]
# pull_request:
# branches: [ main ]
jobs:
build:

View file

@ -1,5 +1,5 @@
name: "Validate Gradle Wrapper"
on: [push, pull_request]
# on: [push, pull_request]
jobs:
validation:

View file

@ -6,11 +6,11 @@
# https://github.com/github/super-linter
name: Lint Code Base
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# on:
# push:
# branches: [ main ]
# pull_request:
# branches: [ main ]
jobs:
run-lint:
runs-on: ubuntu-latest

View file

@ -10,7 +10,4 @@ please read them at:
Signal: https://signal.org/legal/#privacy-policy
Telegram: https://telegram.org/privacy
Threema: https://threema.ch/privacy_policy/
Fallback services:
WhatsApp: https://www.whatsapp.com/privacy

View file

@ -1,22 +1,14 @@
# Red
<p align="center">
<img src="https://weforge.xyz/partisan/Pulse/raw/branch/main/data/icon.svg" alt="Logo" width="64" height="64">
</p>
Redirect outgoing calls to Signal/Telegram/Threema.
<p align="center" style="font-size: 32px;">
<strong>Pulse</strong>
</p>
[<img
src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/me.lucky.red/)
[<img
src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png"
alt="Get it on Google Play"
height="80">](https://play.google.com/store/apps/details?id=me.lucky.red)
<img
src="https://raw.githubusercontent.com/x13a/Red/main/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png"
width="30%"
height="30%">
Tiny app to redirect outgoing calls to Signal/Telegram/Threema if available.
<p align="center">
Tiny app to redirect outgoing calls to Signal/Telegram/Threema/Whatsapp.
</p>
You can cancel redirection by clicking on `Redirecting to..` popup.
@ -37,3 +29,12 @@ This application is Free Software: You can use, study share and improve it at yo
Specifically you can redistribute and/or modify it under the terms of the
[GNU General Public License v3](https://www.gnu.org/licenses/gpl.html) as published by the Free
Software Foundation.
### Icon Credit
Icon based on "Pulse 53" from the [Flare Dashed Icons](https://www.svgrepo.com/svg/450484/pulse) collection by [Taras Shypka](https://www.svgrepo.com/author/Taras%20Shypka/).
Licensed under the [Public Domain](https://www.svgrepo.com/page/licensing/#PD).
### Original Author
This software was originally developed by https://github.com/x13a, but it has been archived by the owner on Jun 22, 2022.

View file

@ -4,14 +4,15 @@ plugins {
}
android {
compileSdk 32
namespace 'partisan.weforge.xyz.pulse'
compileSdk 34
defaultConfig {
applicationId "me.lucky.red"
applicationId "partisan.weforge.xyz.pulse"
minSdk 29
targetSdk 32
targetSdk 34
versionCode 9
versionName "1.0.8"
versionName "1.1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@ -22,31 +23,33 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '1.8'
jvmTarget = '17'
}
buildFeatures {
viewBinding true
}
lint {
disable 'MissingTranslation'
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'androidx.preference:preference-ktx:1.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
}
}

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("me.lucky.red", appContext.packageName)
assertEquals("partisan.weforge.xyz.pulse", appContext.packageName)
}
}

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.lucky.red">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import android.app.Application
import com.google.android.material.color.DynamicColors

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import android.Manifest
import android.net.ConnectivityManager

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import android.Manifest
import android.app.role.RoleManager
@ -11,7 +11,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.widget.doAfterTextChanged
import java.lang.NumberFormatException
import me.lucky.red.databinding.ActivityMainBinding
import partisan.weforge.xyz.pulse.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
companion object {

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import android.Manifest
import android.content.Context

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import android.content.Context
import androidx.core.content.edit

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Red</string>
<string name="app_name">Pulse</string>
<string name="description">L\'application essaiera de rediriger les appels sortants vers Signal/Telegram/Threema s\'ils sont disponibles. Pour fonctionner, l\'application nécessite de nombreuses permissions. Cliquez sur le bouton et accordez les autorisations nécéssaires jusqu\'à ce qu\'il soit activé.</string>
<string name="popup">Redirection vers %1$s</string>
<string name="destination_signal">Signal</string>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Red</string>
<string name="app_name">Pulse</string>
<string name="description">Приложение будет пытаться перенаправить исходящие вызовы в Signal/Telegram/Threema. Для работы ему нужно много разрешений. Кликайте на переключатель и выдавайте разрешения пока он не включится.</string>
<string name="popup">Перенаправление в %1$s</string>
<string name="destination_signal">Signal</string>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Red</string>
<string name="app_name">Pulse</string>
<string name="description">The app will try to redirect outgoing calls to Signal/Telegram/Threema if available. For work it requires many permissions. Click on the toggle and grant permissions until it turns ON.</string>
<string name="popup">Redirecting to %1$s</string>
<string name="destination_signal">Signal</string>

View file

@ -1,4 +1,4 @@
package me.lucky.red
package partisan.weforge.xyz.pulse
import org.junit.Test

View file

@ -1,18 +1,23 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
plugins {
id 'com.github.ben-manes.versions' version '0.51.0'
id 'com.android.application' version '8.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.9.22' apply false
}
dependencyUpdates {
rejectVersionIf {
isNonStable(candidate.version)
}
outputFormatter = 'plain'
checkForGradleUpdate = true
}
def isNonStable(String version) {
return version =~ /(?i).*(alpha|beta|rc|cr|m|preview|b\d+|ea\d+).*/
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}

25
data/Icon.svg Normal file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 72 72" enable-background="new 0 0 72 72" xml:space="preserve">
<g>
<path d="M60.999,9.506c-5.233,0-9.493,4.26-9.493,9.495c0,3.646,2.07,6.815,5.095,8.404l-4.95,14.254
c-0.537-0.095-1.087-0.153-1.651-0.153c-1.456,0-2.831,0.34-4.065,0.928l-11.246-11.62c0.515-1.168,0.806-2.457,0.806-3.813
c0-5.235-4.259-9.495-9.495-9.495c-5.234,0-9.493,4.26-9.493,9.495c0,2.931,1.337,5.555,3.431,7.298l-4.766,10.186
c-1.261-0.62-2.674-0.979-4.172-0.979c-5.234,0-9.493,4.26-9.493,9.495c0,5.233,4.259,9.493,9.493,9.493
c5.236,0,9.495-4.26,9.495-9.493c0-2.253-0.792-4.321-2.107-5.951l5.102-10.904c0.801,0.221,1.641,0.348,2.511,0.348
c2.416,0,4.616-0.914,6.293-2.404l10.452,10.801c-1.394,1.653-2.238,3.784-2.238,6.11c0,5.233,4.26,9.493,9.493,9.493
c5.235,0,9.495-4.26,9.495-9.493c0-3.248-1.641-6.117-4.136-7.83l5.108-14.704c0.177,0.01,0.353,0.027,0.532,0.027
c5.235,0,9.495-4.259,9.495-9.493C70.494,13.766,66.234,9.506,60.999,9.506z M10.999,58.494c-3.029,0-5.493-2.465-5.493-5.493
c0-3.03,2.464-5.495,5.493-5.495c3.03,0,5.495,2.465,5.495,5.495C16.494,56.029,14.029,58.494,10.999,58.494z M25.999,32.494
c-3.029,0-5.493-2.464-5.493-5.493c0-3.03,2.464-5.495,5.493-5.495c3.03,0,5.495,2.465,5.495,5.495
C31.494,30.03,29.029,32.494,25.999,32.494z M49.999,56.494c-3.028,0-5.493-2.465-5.493-5.493c0-3.03,2.465-5.495,5.493-5.495
c3.03,0,5.495,2.465,5.495,5.495C55.494,54.029,53.029,56.494,49.999,56.494z M60.999,24.494c-3.028,0-5.493-2.464-5.493-5.493
c0-3.03,2.465-5.495,5.493-5.495c3.03,0,5.495,2.465,5.495,5.495C66.494,22.03,64.029,24.494,60.999,24.494z"/>
<path d="M61.999,15.038c-1.657,0-3.198,0.823-4.122,2.201c-0.309,0.459-0.186,1.08,0.273,1.388c0.17,0.114,0.365,0.169,0.556,0.169
c0.321,0,0.64-0.155,0.832-0.444c0.552-0.823,1.472-1.314,2.461-1.314c0.554,0,1-0.447,1-1
C62.999,15.485,62.553,15.038,61.999,15.038z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -1 +0,0 @@
init

View file

@ -1,4 +0,0 @@
renommer en Red
afficher la destination de la redirection
corriger la fin d'appel du numéroteur
ajout de la priorisation Signal > Télégram

View file

@ -1 +0,0 @@
sélecteur du délai avant redirection

View file

@ -1 +0,0 @@
Google n'aime pas ma "Privacy Police" :(

View file

@ -1 +0,0 @@
support de Threema

View file

@ -18,4 +18,6 @@ android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
kotlin.code.style=official
android.nonTransitiveRClass=true

View file

@ -1,6 +1,5 @@
#Tue Jun 14 23:11:06 MSK 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View file

@ -1,9 +1,19 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "Red"
include ':app'
rootProject.name = "Pulse"
include(":app")