An android app randomizing pairings and situations. broken and archived in favour of pairandomizer-pwa
This repository has been archived on 2026-02-24. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Kotlin 96.7%
  • Java 3.3%
Find a file
2018-08-26 19:04:26 +02:00
.idea Moved JSON handling to kotlinx.serialization 2018-08-26 11:43:09 +02:00
app Added triple_messages conceptually 2018-08-26 17:44:14 +02:00
fastlane/metadata/android Added initial fastlane data 2018-01-21 12:12:44 +01:00
gradle/wrapper Updated gradle wrapper 2018-08-23 14:32:45 +02:00
server-files Added triple_messages to freizeitpark_de.json 2018-08-26 19:04:26 +02:00
.gitignore Started basic migration to kotlin 2018-08-23 07:59:13 +02:00
build.gradle Moved JSON handling to kotlinx.serialization 2018-08-26 11:43:09 +02:00
gradle.properties Initial code commit 2017-12-30 18:12:34 +01:00
gradlew Initial code commit 2017-12-30 18:12:34 +01:00
gradlew.bat Initial code commit 2017-12-30 18:12:34 +01:00
LICENSE Initial commit 2017-12-30 18:07:12 +01:00
README.md Updated README 2018-02-04 13:39:08 +01:00
settings.gradle Initial code commit 2017-12-30 18:12:34 +01:00

Pairandomizer

An android app randomizing pairings and situations.
It pulls data from a server the user can specify.
Multiple languages are supported, and servers can provide text in as many languages as they can or want.

Build instructions

Use Android Studio. Open the project. Install the needed components. Build -> Make Project.

You can also use the F-Droid build system.

Running your own server

Contributions to this repository are all welcome, especially if you want to help me with translations or adding scenarios in other languages!

But if you want to run your own server and serve your own scenarios and scenes, all you need is a web server. It can be any kind of web server, including stuff like free webspace, as long as you can put json files on it.
The directory server-files contains all the files that need to be on your server. They are all .json files containing a single JSON object. What follows is a description of the various files and their object scheme.

index.json

This file contains a little bit of information about your server, followed by a list of the other files you want to provide, together with a display name and a language. This is the only file that has a fixed name.

File content specification:

  • server_name: The name of your server. Is currently only displayed in the "Server info" dialog of the app.
  • comment: A description for your server. It can, in theory, be as long as you want, and is also displayed under "Server info".
  • scenarios: A list of scenario definitions. It needs to consist of JSON objects using the following scheme:
    • name: The name of the scenario, as it is displayed in the scenario list.
    • lang: The language of the scenario. Only scenarios of the device language will be displayed, unless the user wants to see all scenarios.
    • filename: The name of the file containing the scenario's scene texts. This file needs to be in the same directory on the server. In theory, the filename might be a relative path under the index file's path, but that is currently untested.

scenario_name.json

These files are the ones listed in the index.json file. They can be named whatever you want and there can be as many as you want.

File content specification:

  • scenes: A list of single-scene definitions. They need to be JSON objects following this scheme:
    • name: The name displayed in the dialog title and scene selection.
    • messages: A simple list of events that can occur randomly in a scene. Two names are submitted to them; the placeholders used are Java string placeholders: %1$s is the first name, and %2$s is the second name.
  • solo_messages: Those are used whenever an odd number of names is supplied by the user. They can only contain one parameterized name: %1$s.

That's it! Understanding of basic JSON syntax will help you writing your own scenarios, so you should look into that if you haven't already. Also take a look at the provided index.json file if you have no idea what i'm talking about, you will probably get it.