Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Manuito83/torn-pda
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.3.0
Choose a base ref
...
head repository: Manuito83/torn-pda
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Feb 19, 2024

  1. Update Chat Highlight

    Fixes for chat 2.0, allow users to add custom highlights, inject CSS separately from JS
    Kwack-Kwack committed Feb 19, 2024
    Copy the full SHA
    8868570 View commit details

Commits on Feb 26, 2024

  1. Increased memory allocation

    Manuito83 committed Feb 26, 2024
    Copy the full SHA
    4d0fd2c View commit details

Commits on Feb 27, 2024

  1. Fixes #229

    Manuito83 committed Feb 27, 2024
    Copy the full SHA
    a35efde View commit details
  2. Branch versioning

    Manuito83 committed Feb 27, 2024
    Copy the full SHA
    f7e84b2 View commit details
  3. Copy the full SHA
    207b3e1 View commit details

Commits on Feb 28, 2024

  1. Merge pull request #228 from Kwack-Kwack/develop

    Update Chat Highlight
    Manuito83 authored Feb 28, 2024
    Copy the full SHA
    5d895a5 View commit details
  2. Copy the full SHA
    18eefc4 View commit details
  3. Copy the full SHA
    5028dbe View commit details
  4. Merge pull request #231 from Manuito83/feat-228

    Feat 228
    Manuito83 authored Feb 28, 2024
    Copy the full SHA
    1aa5d71 View commit details

Commits on Feb 29, 2024

  1. Copy the full SHA
    1123214 View commit details
  2. Copy the full SHA
    a13313e View commit details
  3. Copy the full SHA
    75a696e View commit details
  4. Updated changelog

    Manuito83 committed Feb 29, 2024
    Copy the full SHA
    d7c0adf View commit details
  5. Copy the full SHA
    c8ab2b2 View commit details

Commits on Mar 1, 2024

  1. Clarification

    Manuito83 committed Mar 1, 2024
    Copy the full SHA
    555742b View commit details

Commits on Mar 6, 2024

  1. Add headers parameter to PDA_httpGet JS and Dart handlers (#232)

    * Add headers parameter to PDA_httpGet JS and Dart handlers
    
    Signed-off-by: tiksan <webmaster@deek.sh>
    
    * Minor fixes
    
    ---------
    
    Signed-off-by: tiksan <webmaster@deek.sh>
    Co-authored-by: Kwack <kwack@kwack.dev>
    dssecret and Kwack-Kwack authored Mar 6, 2024
    Copy the full SHA
    78d2853 View commit details

Commits on Mar 8, 2024

  1. Beta versioning

    Manuito83 committed Mar 8, 2024
    Copy the full SHA
    8dd1619 View commit details
  2. Copy the full SHA
    b3bbde3 View commit details
  3. Renamed TSC

    Manuito83 committed Mar 8, 2024
    Copy the full SHA
    f3aa73e View commit details
  4. Copy the full SHA
    043a55b View commit details
  5. Copy the full SHA
    d7abb2d View commit details

Commits on Mar 9, 2024

  1. Fixed empty receipt

    Manuito83 committed Mar 9, 2024
    Copy the full SHA
    b0dc1d5 View commit details
  2. Updated logo

    Manuito83 committed Mar 9, 2024
    Copy the full SHA
    ecac424 View commit details
  3. Copy the full SHA
    93a2e34 View commit details
  4. Merge pull request #238 from Manuito83/feat-235-tornexchange

    Feat 235 tornexchange
    Manuito83 authored Mar 9, 2024
    Copy the full SHA
    7351729 View commit details
  5. Copy the full SHA
    9ab068d View commit details
  6. Copy the full SHA
    8b0f635 View commit details
  7. Fixed profit formatting

    Manuito83 committed Mar 9, 2024
    Copy the full SHA
    40c1e0f View commit details

Commits on Mar 12, 2024

  1. Copy the full SHA
    75ef4c6 View commit details

Commits on Mar 13, 2024

  1. Copy the full SHA
    ca0d794 View commit details
  2. Added forgery crime

    Manuito83 committed Mar 13, 2024
    Copy the full SHA
    395c321 View commit details

Commits on Mar 14, 2024

  1. Copy the full SHA
    c689ae5 View commit details
  2. Copy the full SHA
    435c192 View commit details
  3. Copy the full SHA
    5d23982 View commit details
  4. Versioning

    Manuito83 committed Mar 14, 2024
    Copy the full SHA
    dc271c3 View commit details
  5. Fixed option title

    Manuito83 committed Mar 14, 2024
    Copy the full SHA
    f681d40 View commit details
  6. Fixed typos and margins

    Manuito83 committed Mar 14, 2024
    Copy the full SHA
    593e6a6 View commit details

Commits on Mar 15, 2024

  1. Copy the full SHA
    b30ac62 View commit details

Commits on Mar 17, 2024

  1. Copy the full SHA
    1dc9864 View commit details

Commits on Mar 24, 2024

  1. Copy the full SHA
    d509940 View commit details

Commits on Mar 25, 2024

  1. Copy the full SHA
    818087a View commit details
  2. Copy the full SHA
    0e659d8 View commit details

Commits on Mar 29, 2024

  1. Copy the full SHA
    ec94773 View commit details
  2. Copy the full SHA
    f091294 View commit details

Commits on Apr 1, 2024

  1. Copy the full SHA
    e1ba128 View commit details
  2. Copy the full SHA
    9520687 View commit details
  3. Disabled debug RW

    Manuito83 committed Apr 1, 2024
    Copy the full SHA
    67a2db9 View commit details
  4. Fixed TSC error handling

    Manuito83 committed Apr 1, 2024
    Copy the full SHA
    87fe7fc View commit details
  5. Updated console messages

    Manuito83 committed Apr 1, 2024
    Copy the full SHA
    1a46a1b View commit details
  6. Copy the full SHA
    75aebb0 View commit details
Showing 1,725 changed files with 80,270 additions and 14,174 deletions.
36 changes: 32 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Miscellaneous
# PDA specifics
/lib/config/
/lib/torn-pda-native/

# Miscellaneoussure
*.class
*.lock
*.log
@@ -12,11 +16,16 @@
.VSCodeCounter/
.fvm

# ENV
.env
*env.g.dart

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/*
.idx/*
!.idea/codeStyles/

# The .vscode folder contains launch configuration and tasks you configure in
@@ -33,11 +42,13 @@
.pub-cache/
.pub/
/build/
/devtools_options.yaml

# Firebase
**/android/app/google-services.json
**/ios/Runner/GoogleService-Info.plist
/cloud_functions/functions/key/serviceAccountKey.json
firebase.json

# Android related
**/android/**/gradle-wrapper.jar
@@ -74,25 +85,42 @@
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

# Windows
**/windows/flutter/ephemeral/
**/windows/flutter/generated_plugin_registrant.cc
**/windows/flutter/generated_plugin_registrant.h
**/windows/flutter/generated_plugins.cmake

# Linux
**/linux/flutter/ephemeral/
**/linux/flutter/generated_plugin_registrant.cc
**/linux/flutter/generated_plugin_registrant.h
**/linux/flutter/generated_plugins.cmake

# Web related
lib/generated_plugin_registrant.dart

# Exceptions to above rules.
# Exceptions to above rules
/android/key.properties
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
/lib/config/
/lib/torn-pda-native/
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock
!.vscode/settings.json

# IDE
android/.idea/.gitignore
android/.idea/gradle.xml
android/.idea/misc.xml
android/.idea/modules.xml
android/.idea/vcs.xml
lib/firebase_options.dart
ios/firebase_app_id_file.json

# Crash
/~/
.crashlytics/dump_syms.exe
.crashlytics/libgcc_s_seh-1.dll
24 changes: 22 additions & 2 deletions .metadata
Original file line number Diff line number Diff line change
@@ -4,7 +4,27 @@
# This file should be version controlled and should not be manually edited.

version:
revision: 18cd7a3601bcffb36fdf2f679f763b5e827c2e8e
channel: beta
revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: windows
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
108 changes: 81 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,118 @@
![Torn PDA](https://img.shields.io/github/v/tag/Manuito83/torn-pda.svg?color=green&label=Torn%20PDA&logo=github&style=for-the-badge)
[![Discord](https://img.shields.io/discord/715785867519721534?style=for-the-badge&color=%23447e9b&label=Discord&logo=discord&logoColor=FFF)](https://discord.gg/vyP23kJ)

# TORN PDA
# TORN PDA

![Torn PDA](https://i.imgur.com/8hNh0q7.png?1)
Torn PDA is an all-in-one assistant developed for players of [TORN City](https://www.torn.com). It aims to make playing Torn on mobile devices more convenient and enjoyable, offering a variety of tools to simplify tasks and enhance your experience.

Torn PDA has been developed as an assistant for players of [TORN City](https://www.torn.com).
Torn PDA was first released in May 2020, and since then it has been evolving to meet the needs of the community. It was originally developed for private use to solve simple issues like forgetting that I had landed already a few minutes ago (which often results in getting mugged), or managing chains without constantly switching apps. The app was later made public to help other players facing similar challenges.

It was conceived to enhance the experience of playing Torn from a mobile platform, and other already existing applications, such as YATA, have been a great influence.
It is officially endorsed by the developers of Torn (who also provide financial support for the servers used by the app for some applications), and as of the end of 2024 it is used by more than 40k players.

* Profile page with shortcuts to you preferred sections, access to basic status data, recent events, cooldowns and net-worth calculation. You can also manually activate notifications so that you don't waste any energy, nerve, or miss any cooldown expiry.
Torn PDA provides easy access to key game information and offers shortcuts to reduce the time needed for common actions. You can view stats, manage chaining targets, and even call for revives, all within the app. Below is a list of the main features Torn PDA offers to enhance your Torn experience.

* Check your travel status and configure notifications or alarms just before you arrive. No more forgetting and being mugged abroad. Also, configure the notification shown so that it is safe to use even at work or in other public environments.
You can see all the pending suggestions or developments on our [GitHub project board](https://github.com/users/Manuito83/projects/1) or join our discussions on [Discord](https://discord.gg/vyP23kJ).

* Have a look at foreign stocks directly in the Travel section. Filter and sort items at your convenience, including profit based on item capacity. Also, by using the in-app browser, you are contributing by sending stock data automatically to the shared database!
<br />

* User scripts support.
## Features

* YATA mobile interface: new sections (e.g. Awards) that constitute the first official YATA mobile interface. Data comes straight from your YATA account.
- **Profile Overview**: Access shortcuts to your favorite sections, view basic status data, recent events, cooldowns, and net-worth calculations. Set notifications so you never waste energy, nerve, or miss important cooldowns.

* Ability to fill max items on arrival to destination, based on current capacity and money available. Then, use the quick home return button in the top bar to make your stay quicker and safer.
- **Travel Notifications**: Track your travel status with customizable alarms to notify you before arrival. Discreet notifications help you stay safe in public places.

* Quick crimes option when you visit the crimes section. Just set up your preferred crimes and they'll appear in the top bar.
- **Foreign Stock Management**: View, filter, and sort foreign stocks, including profit calculations based on item capacity. Contributions via the in-app browser help update the shared stock database.

* Quick Items: browse to the items section in Torn with the full browser and add your prefer items for a quick access later on.
- **User Scripts Support**: Customize your experience by adding user scripts. Many scripts compatible with Torn PDA can be found in the forums, and the app already includes some example scripts.

* Trade calculator with total price calculation for cash, items and shares, plus the ability to copy total figures for a quick trading. If you are a professional trader, you can also synchronize with the Arson Warehouse.
- **YATA Integration**: Access new sections like Awards through the YATA mobile interface. Data is synced directly from your YATA account, and you can also manage and sync awards and chaining targets.

* Automatic city items finder in the map.
- **Auto-Fill Items**: Automatically fill your maximum item capacity upon reaching a destination, considering your available money. Use the quick home return button for a more efficient travel experience.

* Automatic alerts for travel, energy, nerve, hospitalization, drugs, racing, messages and stocks.
- **Quick Items Access**: Add items to your quick access list from, making them easy to find later.

* Torn chat: options to highlight your name or hide the chat completely if you wish.
- **Trade Calculator**: Calculate the total price for cash, items, and shares, with options for synchronization with the Arson Warehouse and Torn Exchange.

* Follow your faction's chain live from the app, with instant energy updates. Use the chain watcher feature to avoid surprises.
- **City Items Finder**: Automatically locate city items on the map for easy retrieval.

* Create your own target list, adding your own comments and many other details. Import and export your targets to/from YATA. While chaining, automatically skip targets that can't be attacked (hospitalised/jailed or in a different country). Chaining has never been easier.
- **Automatic Alerts**: Receive alerts for travel, energy, nerve, hospitalization, drugs, racing, messages, stocks, and more.

* Have a look at your last few attacks, with simple statistics so that you can decide when/who to add to your common chaining targets.
- **Faction Chain Tracking**: Follow your faction's chain live with instant energy updates and a chain watcher feature to avoid surprises.

* Export targets as a backup or share them with other players.
- **Target List Management**: Create and manage target lists with comments and details. Import/export targets to/from YATA, and skip targets that cannot be attacked (e.g., hospitalized or in another country). Torn Attack Central integration also allows finding curated targets effortlessly.

* When in hospital, send Nuclear Central Hospital a revive request by clicking a button.
- **Attack Logs**: Review your recent attacks and simple statistics to help you manage your common chaining targets.

* Create a friends list, with quick access to in-game messaging, trading and other important details. Also, add note to your friends' profiles. Backup functionality included.
- **Target Backup and Sharing**: Export targets as a backup or share them with other players.

* Activate alerts for NPC loot.
- **Revive Requests**: Send a revive request to several reviving providers with one click when hospitalized.

* Dark mode.
- **Friends List**: Create a friends list for quick access to messaging, trading, and other in-game activities. Add personal notes to profiles and back up friends' information.

- **NPC Loot Alerts**: Activate alerts for NPC loot opportunities. Integrated with Loot Rangers.

- **Dark Mode**: Enjoy a comfortable experience with the dark mode option.

## iOS / Android
- **Home Screen Widget**: Available for Android.

[![Play Store](https://i.imgur.com/R12sw2i.png?2)](https://play.google.com/store/apps/details?id=com.manuito.tornpda "Play Store")
There are many more features available, but listing them all would be too long. For detailed information on how to use everything, check out the Tips section in the app. You can also review the changelog at [GitHub releases](https://github.com/Manuito83/torn-pda/releases).

<br />

## Download

[![Play Store](https://i.imgur.com/R12sw2i.png?2)](https://play.google.com/store/apps/details?id=com.manuito.tornpda "Play Store")
[![App Store](https://i.imgur.com/6k02rJZ.png?1)](https://apps.apple.com/us/app/torn-pda/id1510138514 "App Store")

<br />

## Contribute

Please feel free to contribute by starting a pull request or raising an issue!
We welcome contributions at different levels!

- **Developers**: Since Torn PDA is an open-source project, we invite developers to contribute. Join us on [Discord](https://discord.gg/vyP23kJ) to discuss how you can help. The app is open source, but you might need some assistance to set it up the first time, and we're here to guide you. Feel free to raise issues and/or fork the app, work with it and submit a PR if you have a suggestion.

- **Beta Testers**: If you think you can dedicate enough time, consider joining our beta testing program. Your feedback is invaluable in ensuring the app continues to improve and meet players' needs. You can do so in our Discord server.

- **General Support**: No matter your skills, you can still support us by giving a thumbs up in the Torn forums and participating in discussions on [Discord](https://discord.gg/vyP23kJ).

<br />

## Development Team and Partners

### Lead Developers

- [**Manuito**](https://www.torn.com/profiles.php?XID=2225097): Lead developer and founder of Torn PDA
- [**Kwack**](https://www.torn.com/profiles.php?XID=2190604): Developer, key contributor to app functionalities
- [**Mavri**](https://www.torn.com/profiles.php?XID=2402357): TSC and Torn PDA Developer

### Contributors

- **Phillip_J_Fry**: Discord management and user support
- **VioletStorm**: Support on Discord and user engagement
- **Kivou**: Resources and support from YATA
- **Lazerpent**: Loot Rangers
- **IceBlueFire**: Contributions through Torn Stats
- **Knoxby**: Developer of the JavaScript API for cross-origin HTTP requests used in userscripts

### Partners

Thank you to our partners who have chosen Torn PDA as their mobile interface:

- **YATA**
- **Arson Warehouse**
- **Torn Exchange**
- **Torn Spies Central**
- **Prometheus**
- **Loot Rangers**
- **Reviving Providers**: Nuke, UHC, HeLa, WTF, Midnight X, and others

Additionally, some scripts, concepts, and features have been adapted from pre-existing tools like **YATA**, **Torn Tools**, or **DocTorn**.

<br />

## Limitations

- **API Key Requirement**: To use Torn PDA, you must have a Limited API Key from Torn City.
- **Google Cloud Access**: The app requires access to Google Cloud services, which may be restricted in certain countries or for some users. Please ensure your device has proper access to these services.
- **System Requirements**: Torn PDA requires at least iOS 12 or Android 6 to function properly.
3 changes: 3 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
analyzer:
errors:
no_wildcard_variable_uses: ignore
include: package:lints/recommended.yaml

linter:
32 changes: 17 additions & 15 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
id "com.google.gms.google-services"
id "com.google.firebase.crashlytics"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
@@ -6,24 +14,16 @@ if (localPropertiesFile.exists()) {
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '382'
flutterVersionCode = '497'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '3.3.0'
flutterVersionName = '3.7.1'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
@@ -33,13 +33,15 @@ if (keystorePropertiesFile.exists()) {
android {
compileSdkVersion 34

namespace 'com.manuito.tornpda'

lintOptions {
disable 'InvalidPackage'
}

defaultConfig {
applicationId "com.manuito.tornpda"
minSdkVersion 21
minSdkVersion 23
targetSdkVersion 34
multiDexEnabled true
versionCode flutterVersionCode.toInteger()
@@ -93,13 +95,13 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.core:core-splashscreen:1.0.0'

// Required by Home Widget
implementation "androidx.work:work-runtime-ktx:2.8.1"

// See https://github.com/flutter/flutter/issues/110658 (local_notifications_plugin)
implementation 'androidx.window:window:1.0.0'
implementation 'androidx.window:window-java:1.0.0'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

16 changes: 14 additions & 2 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
-keep class io.flutter.plugins.** { *; }
-dontwarn io.flutter.embedding.**

## Gson rules
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
@@ -19,9 +19,12 @@
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapter
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
@@ -31,8 +34,17 @@
@com.google.gson.annotations.SerializedName <fields>;
}

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

##---------------End: proguard configuration for Gson ----------

## flutter_local_notification plugin rules
-keep class com.dexterous.** { *; }

-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers.
-keep public class * extends java.lang.Exception # Optional: Keep custom exceptions.

## Added after Flutter 3.22
-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication
Loading