Merge remote-tracking branch 'megalodon_main/main'
# Conflicts: # mastodon/build.gradle # mastodon/src/github/AndroidManifest.xml # mastodon/src/main/res/values-de-rDE/strings_sk.xml # mastodon/src/main/res/values-es-rES/strings_sk.xml # mastodon/src/main/res/values-eu-rES/strings_sk.xml # mastodon/src/main/res/values-ko-rKR/strings_sk.xml # mastodon/src/main/res/values-pl-rPL/strings_sk.xml # mastodon/src/main/res/values-uk-rUA/strings_sk.xml # metadata/es/changelogs/83.txt # metadata/fr/short_description.txt # metadata/gl-ES/changelogs/83.txt
This commit is contained in:
commit
5b391b44d3
|
@ -0,0 +1,11 @@
|
|||
name: Validate Gradle Wrapper
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
validation:
|
||||
name: Validation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: gradle/wrapper-validation-action@v1
|
|
@ -5,7 +5,7 @@ buildscript {
|
|||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.3.1'
|
||||
classpath 'com.android.tools.build:gradle:8.0.0'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
|
|
|
@ -16,4 +16,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
|
|||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=false
|
||||
android.enableJetifier=false
|
||||
android.defaults.buildfeatures.buildconfig=true
|
||||
android.nonTransitiveRClass=true
|
||||
android.nonFinalResIds=false
|
Binary file not shown.
|
@ -1,6 +1,7 @@
|
|||
#Thu Jan 13 11:33:43 MSK 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
distributionSha256Sum=e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -17,67 +17,98 @@
|
|||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
@ -87,9 +118,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
@ -98,7 +129,7 @@ Please set the JAVA_HOME variable in your environment to match the
|
|||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
|
@ -106,80 +137,109 @@ location of your Java installation."
|
|||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=`save "$@"`
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
|
@ -25,7 +25,8 @@
|
|||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
|
@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
|
|
@ -2,6 +2,12 @@ plugins {
|
|||
id 'com.android.application'
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 33
|
||||
defaultConfig {
|
||||
|
@ -13,8 +19,8 @@ android {
|
|||
versionCode 99
|
||||
versionName "1.2.0+fork.99.moshinda"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "nl-rNL", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "vi-rVN", "zh-rCN", "zh-rTW"
|
||||
}
|
||||
resourceConfigurations += ['ar-rSA', 'ar-rDZ', 'be-rBY', 'bn-rBD', 'bs-rBA', 'ca-rES', 'cs-rCZ', 'da-rDK', 'de-rDE', 'el-rGR', 'es-rES', 'eu-rES', 'fa-rIR', 'fi-rFI', 'fil-rPH', 'fr-rFR', 'ga-rIE', 'gd-rGB', 'gl-rES', 'hi-rIN', 'hr-rHR', 'hu-rHU', 'hy-rAM', 'ig-rNG', 'in-rID', 'is-rIS', 'it-rIT', 'iw-rIL', 'ja-rJP', 'kab', 'ko-rKR', 'my-rMM', 'nl-rNL', 'no-rNO', 'oc-rFR', 'pl-rPL', 'pt-rBR', 'pt-rPT', 'ro-rRO', 'ru-rRU', 'si-rLK', 'sl-rSI', 'sv-rSE', 'th-rTH', 'tr-rTR', 'uk-rUA', 'ur-rIN', 'vi-rVN', 'zh-rCN', 'zh-rTW']
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
nightly{
|
||||
|
@ -88,14 +94,19 @@ android {
|
|||
setRoot "src/github"
|
||||
}
|
||||
}
|
||||
lintOptions{
|
||||
checkReleaseBuilds false
|
||||
namespace 'org.joinmastodon.android'
|
||||
lint {
|
||||
abortOnError false
|
||||
checkReleaseBuilds false
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api 'androidx.annotation:annotation:1.3.0'
|
||||
api 'androidx.annotation:annotation:1.6.0'
|
||||
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
|
||||
implementation 'me.grishka.litex:recyclerview:1.2.1.1'
|
||||
implementation 'me.grishka.litex:swiperefreshlayout:1.1.0.1'
|
||||
|
@ -104,7 +115,7 @@ dependencies {
|
|||
implementation 'me.grishka.litex:viewpager:1.0.0'
|
||||
implementation 'me.grishka.litex:viewpager2:1.0.0'
|
||||
implementation 'me.grishka.appkit:appkit:1.2.7'
|
||||
implementation 'com.google.code.gson:gson:2.8.9'
|
||||
implementation 'com.google.code.gson:gson:2.9.0'
|
||||
implementation 'org.jsoup:jsoup:1.14.3'
|
||||
implementation 'com.squareup:otto:1.3.8'
|
||||
implementation 'de.psdev:async-otto:1.0.3'
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.joinmastodon.android">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||
|
|
|
@ -5,8 +5,6 @@ import android.view.View;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
|
||||
import me.grishka.appkit.api.ErrorResponse;
|
||||
|
||||
public class MastodonErrorResponse extends ErrorResponse{
|
||||
|
@ -22,7 +20,7 @@ public class MastodonErrorResponse extends ErrorResponse{
|
|||
|
||||
@Override
|
||||
public void bindErrorView(View view){
|
||||
TextView text=view.findViewById(R.id.error_text);
|
||||
TextView text=view.findViewById(me.grishka.appkit.R.id.error_text);
|
||||
text.setText(error);
|
||||
}
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene
|
|||
content.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
FrameLayout fragmentContainer=new FrameLayout(getActivity());
|
||||
fragmentContainer.setId(R.id.fragment_wrap);
|
||||
fragmentContainer.setId(me.grishka.appkit.R.id.fragment_wrap);
|
||||
content.addView(fragmentContainer, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1f));
|
||||
|
||||
inflater.inflate(R.layout.tab_bar, content);
|
||||
|
@ -143,10 +143,10 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene
|
|||
|
||||
if(savedInstanceState==null){
|
||||
getChildFragmentManager().beginTransaction()
|
||||
.add(R.id.fragment_wrap, homeTabFragment)
|
||||
.add(R.id.fragment_wrap, searchFragment).hide(searchFragment)
|
||||
.add(R.id.fragment_wrap, notificationsFragment).hide(notificationsFragment)
|
||||
.add(R.id.fragment_wrap, profileFragment).hide(profileFragment)
|
||||
.add(me.grishka.appkit.R.id.fragment_wrap, homeTabFragment)
|
||||
.add(me.grishka.appkit.R.id.fragment_wrap, searchFragment).hide(searchFragment)
|
||||
.add(me.grishka.appkit.R.id.fragment_wrap, notificationsFragment).hide(notificationsFragment)
|
||||
.add(me.grishka.appkit.R.id.fragment_wrap, profileFragment).hide(profileFragment)
|
||||
.commit();
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import org.joinmastodon.android.events.PollUpdatedEvent;
|
|||
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.CacheablePaginatedResponse;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.Filter;
|
||||
import org.joinmastodon.android.model.Notification;
|
||||
import org.joinmastodon.android.model.PaginatedResponse;
|
||||
|
@ -24,6 +25,7 @@ import org.joinmastodon.android.ui.displayitems.AccountCardStatusDisplayItem;
|
|||
import org.joinmastodon.android.ui.displayitems.HeaderStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.TextStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.text.HtmlParser;
|
||||
import org.joinmastodon.android.ui.utils.DiscoverInfoBannerHelper;
|
||||
import org.joinmastodon.android.ui.utils.InsetStatusItemDecoration;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
|
@ -88,6 +90,13 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
|||
protected List<StatusDisplayItem> buildDisplayItems(Notification n){
|
||||
Account reportTarget = n.report == null ? null : n.report.targetAccount == null ? null :
|
||||
n.report.targetAccount;
|
||||
Emoji emoji = new Emoji();
|
||||
if(n.emojiUrl!=null){
|
||||
emoji.shortcode=n.emoji.substring(1,n.emoji.length()-1);
|
||||
emoji.url=n.emojiUrl;
|
||||
emoji.staticUrl=n.emojiUrl;
|
||||
emoji.visibleInPicker=false;
|
||||
}
|
||||
String extraText=switch(n.type){
|
||||
case FOLLOW -> getString(R.string.user_followed_you);
|
||||
case FOLLOW_REQUEST -> getString(R.string.user_sent_follow_request);
|
||||
|
@ -98,8 +107,9 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
|||
case UPDATE -> getString(R.string.sk_post_edited);
|
||||
case SIGN_UP -> getString(R.string.sk_signed_up);
|
||||
case REPORT -> getString(R.string.sk_reported);
|
||||
case EMOJI_REACTION -> getString(R.string.sk_reacted, n.emoji);
|
||||
};
|
||||
HeaderStatusDisplayItem titleItem=extraText!=null ? new HeaderStatusDisplayItem(n.id, n.account, n.createdAt, this, accountID, n.status, extraText, n, null) : null;
|
||||
HeaderStatusDisplayItem titleItem=extraText!=null ? new HeaderStatusDisplayItem(n.id, n.account, n.createdAt, this, accountID, n.status, n.emojiUrl!=null ? HtmlParser.parseCustomEmoji(extraText, Collections.singletonList(emoji)) : extraText, n, null) : null;
|
||||
if(n.status!=null){
|
||||
ArrayList<StatusDisplayItem> items=StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, titleItem!=null, titleItem==null, n, false, Filter.FilterContext.NOTIFICATIONS);
|
||||
if(titleItem!=null)
|
||||
|
|
|
@ -402,7 +402,7 @@ public class ProfileAboutFragment extends Fragment implements WindowInsetsAwareF
|
|||
public void onSelectedChanged(@Nullable RecyclerView.ViewHolder viewHolder, int actionState){
|
||||
super.onSelectedChanged(viewHolder, actionState);
|
||||
if(actionState==ItemTouchHelper.ACTION_STATE_DRAG){
|
||||
viewHolder.itemView.setTag(R.id.item_touch_helper_previous_elevation, viewHolder.itemView.getElevation()); // prevents the default behavior of changing elevation in onDraw()
|
||||
viewHolder.itemView.setTag(me.grishka.appkit.R.id.item_touch_helper_previous_elevation, viewHolder.itemView.getElevation()); // prevents the default behavior of changing elevation in onDraw()
|
||||
viewHolder.itemView.animate().translationZ(V.dp(1)).setDuration(200).setInterpolator(CubicBezierInterpolator.DEFAULT).start();
|
||||
draggedViewHolder=viewHolder;
|
||||
}
|
||||
|
|
|
@ -1512,7 +1512,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
|||
public void onSelectedChanged(@Nullable RecyclerView.ViewHolder viewHolder, int actionState){
|
||||
super.onSelectedChanged(viewHolder, actionState);
|
||||
if(actionState==ItemTouchHelper.ACTION_STATE_DRAG){
|
||||
viewHolder.itemView.setTag(R.id.item_touch_helper_previous_elevation, viewHolder.itemView.getElevation()); // prevents the default behavior of changing elevation in onDraw()
|
||||
viewHolder.itemView.setTag(me.grishka.appkit.R.id.item_touch_helper_previous_elevation, viewHolder.itemView.getElevation()); // prevents the default behavior of changing elevation in onDraw()
|
||||
viewHolder.itemView.animate().translationZ(V.dp(1)).setDuration(200).setInterpolator(CubicBezierInterpolator.DEFAULT).start();
|
||||
draggedViewHolder=viewHolder;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ public class Notification extends BaseModel implements DisplayItemsParent{
|
|||
public Account account;
|
||||
public Status status;
|
||||
public Report report;
|
||||
public String emoji;
|
||||
public String emojiUrl;
|
||||
|
||||
@Override
|
||||
public void postprocess() throws ObjectValidationException{
|
||||
|
@ -54,7 +56,9 @@ public class Notification extends BaseModel implements DisplayItemsParent{
|
|||
@SerializedName("admin.sign_up")
|
||||
SIGN_UP,
|
||||
@SerializedName("admin.report")
|
||||
REPORT
|
||||
REPORT,
|
||||
@SerializedName("pleroma:emoji_reaction")
|
||||
EMOJI_REACTION
|
||||
}
|
||||
|
||||
@Parcel
|
||||
|
|
|
@ -86,13 +86,13 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
|||
public final Status status;
|
||||
private boolean hasVisibilityToggle;
|
||||
boolean needBottomPadding;
|
||||
private String extraText;
|
||||
private CharSequence extraText;
|
||||
private Notification notification;
|
||||
private ScheduledStatus scheduledStatus;
|
||||
private Announcement announcement;
|
||||
private Consumer<String> consumeReadAnnouncement;
|
||||
|
||||
public HeaderStatusDisplayItem(String parentID, Account user, Instant createdAt, BaseStatusListFragment parentFragment, String accountID, Status status, String extraText, Notification notification, ScheduledStatus scheduledStatus){
|
||||
public HeaderStatusDisplayItem(String parentID, Account user, Instant createdAt, BaseStatusListFragment parentFragment, String accountID, Status status, CharSequence extraText, Notification notification, ScheduledStatus scheduledStatus){
|
||||
super(parentID, parentFragment);
|
||||
user=scheduledStatus != null ? AccountSessionManager.getInstance().getAccount(accountID).self : user;
|
||||
this.user=user;
|
||||
|
@ -117,6 +117,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
|||
}
|
||||
}
|
||||
this.extraText=extraText;
|
||||
emojiHelper.addText(extraText);
|
||||
}
|
||||
|
||||
public static HeaderStatusDisplayItem fromAnnouncement(Announcement a, Status fakeStatus, Account instanceUser, BaseStatusListFragment parentFragment, String accountID, Consumer<String> consumeReadID) {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.joinmastodon.android.ui.displayitems;
|
||||
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.*;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
|
@ -181,10 +183,11 @@ public class MediaGridStatusDisplayItem extends StatusDisplayItem{
|
|||
altTextIndex=index;
|
||||
Attachment att=item.attachments.get(index);
|
||||
boolean hasAltText = !TextUtils.isEmpty(att.description);
|
||||
altTextButton.setVisibility(hasAltText && GlobalUserPreferences.showAltIndicator ? View.VISIBLE : View.GONE);
|
||||
noAltTextButton.setVisibility(!hasAltText && GlobalUserPreferences.showNoAltIndicator ? View.VISIBLE : View.GONE);
|
||||
altText.setVisibility(hasAltText && GlobalUserPreferences.showAltIndicator ? View.VISIBLE : View.GONE);
|
||||
noAltText.setVisibility(!hasAltText && GlobalUserPreferences.showNoAltIndicator ? View.VISIBLE : View.GONE);
|
||||
if ((hasAltText && !showAltIndicator) || (!hasAltText && !showNoAltIndicator)) return;
|
||||
altTextButton.setVisibility(hasAltText && showAltIndicator ? View.VISIBLE : View.GONE);
|
||||
noAltTextButton.setVisibility(!hasAltText && showNoAltIndicator ? View.VISIBLE : View.GONE);
|
||||
altText.setVisibility(hasAltText && showAltIndicator ? View.VISIBLE : View.GONE);
|
||||
noAltText.setVisibility(!hasAltText && showNoAltIndicator ? View.VISIBLE : View.GONE);
|
||||
altText.setText(att.description);
|
||||
altTextWrapper.setVisibility(View.VISIBLE);
|
||||
altTextWrapper.setBackgroundResource(hasAltText ? R.drawable.bg_image_alt_overlay : R.drawable.bg_image_no_alt_overlay);
|
||||
|
@ -251,8 +254,7 @@ public class MediaGridStatusDisplayItem extends StatusDisplayItem{
|
|||
boolean hasAltText = !TextUtils.isEmpty(item.attachments.get(i).description);
|
||||
if(c.btnsWrap!=null
|
||||
&& c.btnsWrap!=btn
|
||||
&& ((hasAltText && GlobalUserPreferences.showAltIndicator)
|
||||
|| (!hasAltText && GlobalUserPreferences.showNoAltIndicator))
|
||||
&& ((hasAltText && showAltIndicator) || (!hasAltText && showNoAltIndicator))
|
||||
) c.btnsWrap.setVisibility(View.VISIBLE);
|
||||
i++;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,16 @@ public class CustomEmojiHelper{
|
|||
}
|
||||
}
|
||||
|
||||
public void addText(CharSequence text) {
|
||||
if(!(text instanceof Spanned))
|
||||
return;
|
||||
CustomEmojiSpan[] spans=((Spanned) text).getSpans(0, text.length(), CustomEmojiSpan.class);
|
||||
for(List<CustomEmojiSpan> group:Arrays.stream(spans).collect(Collectors.groupingBy(s->s.emoji)).values()){
|
||||
this.spans.add(group);
|
||||
requests.add(group.get(0).createImageLoaderRequest());
|
||||
}
|
||||
}
|
||||
|
||||
public int getImageCount(){
|
||||
return requests.size();
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<string name="sk_translated_using">Traduït amb %s</string>
|
||||
<string name="sk_post_language">Llengua: %s</string>
|
||||
<string name="sk_available_languages">Llengües disponibles</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Segur que vols esborrar les llengües recents\?</string>
|
||||
<string name="sk_welcome_text">El tauró et saluda! Per a començar, introdueix el domini de la instància a continuació.</string>
|
||||
<string name="sk_tabs_disable_swipe">Desactiva el desplaçament entre pestanyes</string>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<string name="sk_no_update_available">Dim diweddariad ar gael</string>
|
||||
<string name="sk_check_for_update">Gwirio am ddiweddariad</string>
|
||||
<string name="sk_poll_allow_multiple">Caniatáu mwy nag un dewis</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_tabs_disable_swipe">Analluogi llusgo rhwng tabiau</string>
|
||||
<string name="sk_settings_posting">Dewisiadau postio</string>
|
||||
<string name="sk_settings_rules">Rheolau</string>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<string name="sk_disable_marquee">Laufschrift in Titelleisten deaktivieren</string>
|
||||
<string name="sk_settings_contribute">Zu Megalodon beitragen</string>
|
||||
<string name="sk_settings_show_federated_timeline">Föderierte Timeline anzeigen</string>
|
||||
<string name="sk_notify_posts">Beitrags-Benachrichtigungen</string>
|
||||
<string name="sk_notify_posts">Beitrags-Benachrichtigungen</string>
|
||||
<string name="sk_settings_color_palette">Farbschema</string>
|
||||
<string name="sk_color_palette_pink">Pink</string>
|
||||
<string name="sk_color_palette_purple">Violett</string>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<string name="sk_poll_allow_multiple">Mehrfachantworten erlauben</string>
|
||||
<string name="sk_translated_using">Übersetzt mit %s</string>
|
||||
<string name="sk_post_language">Sprache: %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Sicher, dass du die Liste der zuletzt verwendeten Sprachen leeren willst\?</string>
|
||||
<string name="sk_translate_post">Übersetzen</string>
|
||||
<string name="sk_translate_show_original">Original anzeigen</string>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<string name="sk_alt_text_missing_title">Fehlende Bildbeschreibung</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Erinnerung zum Hinzufügen von Bildbeschreibungen ausschalten</string>
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_notify_update">Bearbeitet einen geteilten Beitrag</string>
|
||||
<string name="sk_notify_update">einen geteilten Beitrag bearbeitet</string>
|
||||
<string name="sk_timelines">Timelines</string>
|
||||
<string name="sk_timeline">Timeline</string>
|
||||
<string name="sk_hashtag">Hashtag</string>
|
||||
|
@ -271,6 +271,5 @@
|
|||
<string name="sk_show_thread">Thread öffnen</string>
|
||||
<string name="sk_compact_reblog_reply_line">Kompakte Geteilt/Geantwortet-Zeile</string>
|
||||
<string name="sk_reply_line_above_avatar">“Als Antwort auf”-Zeile über Profilbild</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Vor dem Rebloggen bestätigen</string>
|
||||
<string name="sk_settings_show_new_posts_button">Schaltfläche \"Neue Beiträge anzeigen\"</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Vor dem Teilen bestätigen</string>
|
||||
</resources>
|
|
@ -53,7 +53,7 @@
|
|||
<string name="sk_translated_using">Traducido mediante %s</string>
|
||||
<string name="sk_post_language">Idioma: %s</string>
|
||||
<string name="sk_available_languages">Idiomas disponibles</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">¿Seguro que quieres borrar los idiomas usados recientemente\?</string>
|
||||
<string name="sk_clear_recent_languages">Borrar idiomas usados recientemente</string>
|
||||
<string name="sk_welcome_text">¡El tiburón te saluda! Para empezar, introduce a continuación el nombre del dominio de tu instancia.</string>
|
||||
|
@ -272,6 +272,5 @@
|
|||
<string name="sk_reply_line_above_avatar">\"En respuesta a\" línea sobre el avatar</string>
|
||||
<string name="sk_show_thread">Mostrar hilo</string>
|
||||
<string name="sk_compact_reblog_reply_line">Línea compacta de reblog/respuesta</string>
|
||||
<string name="sk_settings_show_new_posts_button">Botón “Mostrar nuevas publicaciones”</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirmar antes de impulsar</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirmar antes de volver a publicar</string>
|
||||
</resources>
|
|
@ -35,7 +35,7 @@
|
|||
<string name="sk_settings_contribute">Lagundu Megalodon</string>
|
||||
<string name="sk_translated_using">%s-ekin itzulia</string>
|
||||
<string name="sk_post_language">Hizkuntza: %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_bookmark_as">Beste kontu baten laster-marka</string>
|
||||
<string name="sk_bookmarked_as">%s bezala laster-markara eramana</string>
|
||||
<string name="sk_already_bookmarked">Dagoeneko laster-marka da</string>
|
||||
|
@ -261,16 +261,14 @@
|
|||
<string name="sk_follow_as">Jarraitu beste kontu batetik</string>
|
||||
<string name="sk_followed_as">%s-(d/t)ik jarraitua</string>
|
||||
<string name="sk_settings_hide_fab">Automatikoki ezkutatu Idatzi botoia</string>
|
||||
<string name="sk_settings_reply_visibility_all">Erantzun guztiak</string>
|
||||
<string name="sk_settings_reply_visibility_self">Niri eginiko erantzunak</string>
|
||||
<string name="sk_settings_reply_visibility_following">Jarraitzen ditudanei eginiko erantzunak</string>
|
||||
<string name="sk_in_reply">Erantzunez</string>
|
||||
<string name="sk_reply_line_above_avatar">“Honi erantzunez” abatarraren gaineko lerroa</string>
|
||||
<string name="sk_show_thread">Erakutsi haria</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Berretsi bultzatu aurretik</string>
|
||||
<string name="sk_quoting_user">%s aipatzen</string>
|
||||
<string name="sk_settings_reply_visibility">Erantzunaren ikusgarritasuna</string>
|
||||
<string name="sk_settings_show_new_posts_button">“Erakutsi argitalpen berriak” botoia</string>
|
||||
<string name="sk_notification_action_replied">%s-(r)i erantzuna bidali da</string>
|
||||
<string name="sk_compact_reblog_reply_line">Bultzada / erantzun lerro trinkoa</string>
|
||||
<string name="sk_settings_reply_visibility_all">Erantzun guztiak</string>
|
||||
<string name="sk_settings_reply_visibility_following">Jarraitzen ditudanei eginiko erantzunak</string>
|
||||
<string name="sk_reply_line_above_avatar">\"Honi erantzunez\" abatarraren gaineko lerroa</string>
|
||||
<string name="sk_show_thread">Erakutsi haria</string>
|
||||
<string name="sk_compact_reblog_reply_line">Bultzada/erantzun lerro trinkoa</string>
|
||||
<string name="sk_quoting_user">%s aipatzen</string>
|
||||
<string name="sk_settings_reply_visibility_self">Niri eginiko erantzunak</string>
|
||||
<string name="sk_notification_action_replied">%s-(r)i erantzun</string>
|
||||
</resources>
|
|
@ -53,7 +53,7 @@
|
|||
<string name="sk_translated_using">Traduit en utilisant %s</string>
|
||||
<string name="sk_post_language">Langue : %s</string>
|
||||
<string name="sk_available_languages">Langues disponibles</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Êtes-vous sûr de vouloir effacer vos langues récemment utilisées \?</string>
|
||||
<string name="sk_clear_recent_languages">Effacer les langues récemment utilisées</string>
|
||||
<string name="sk_example_domain">exemple.social</string>
|
||||
|
@ -273,4 +273,5 @@
|
|||
<string name="sk_show_thread">Afficher le fil</string>
|
||||
<string name="sk_compact_reblog_reply_line">Ligne de repost/réponse compacte</string>
|
||||
<string name="sk_reply_line_above_avatar">Ligne \"En réponse à\" au-dessus de l\'avatar</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirmer avant de reposter</string>
|
||||
</resources>
|
|
@ -44,7 +44,7 @@
|
|||
<string name="sk_disable_marquee">Desactivar desprazamento do texto na barra de título</string>
|
||||
<string name="sk_welcome_title">¡Benvida!</string>
|
||||
<string name="sk_settings_contribute">Contribúe a Megalodon</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_example_domain">exemplo.social</string>
|
||||
<string name="sk_available_languages">Idiomas dispoñíbeis</string>
|
||||
<string name="sk_settings_profile">Configurar perfil</string>
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<string name="sk_settings_show_federated_timeline">Összevont idővonal megjelenítése</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Biztos, hogy törölni szeretné a nemrég használt nyelveket\?</string>
|
||||
<string name="sk_available_languages">Elérhető nyelvek</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_settings_translate_only_opened">Csak a megnyitott hozzászólások lefordítása</string>
|
||||
<string name="sk_already_reblogged">Már reblogoltam</string>
|
||||
<string name="sk_reblogged_as">Átlogolva mint %s</string>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<string name="sk_confirm_clear_recent_languages">Apakah Anda yakin ingin menghapus bahasa terkini yang Anda gunakan\?</string>
|
||||
<string name="sk_color_palette_material3">Sistem</string>
|
||||
<string name="sk_available_languages">Bahasa yang tersedia</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_translate_post">Terjemahkan</string>
|
||||
<string name="sk_translate_show_original">Tampilkan yang asli</string>
|
||||
<string name="sk_post_language">Bahasa: %s</string>
|
||||
|
@ -273,4 +273,5 @@
|
|||
<string name="sk_reply_line_above_avatar">Baris “Membalas ke” di atas avatar</string>
|
||||
<string name="sk_show_thread">Tampilkan utasan</string>
|
||||
<string name="sk_compact_reblog_reply_line">Baris berbagi/balasan</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Konfirmasi sebelum membagikan ulang</string>
|
||||
</resources>
|
|
@ -51,7 +51,7 @@
|
|||
<string name="sk_translate_show_original">Mostra originale</string>
|
||||
<string name="sk_translated_using">Tradotto con %s</string>
|
||||
<string name="sk_post_language">Lingua: %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Sei sicuro di voler cancellare le lingue usate di recente\?</string>
|
||||
<string name="sk_clear_recent_languages">Cancella le lingue usate di recente</string>
|
||||
<string name="sk_welcome_title">Benvenuto!</string>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<string name="sk_translate_post">번역하기</string>
|
||||
<string name="sk_translate_show_original">원본 보기</string>
|
||||
<string name="sk_post_language">언어: %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_translated_using">%s를 통해 번역함</string>
|
||||
<string name="sk_available_languages">모든 언어</string>
|
||||
<string name="sk_clear_recent_languages">최근 사용한 언어 지우기</string>
|
||||
|
@ -100,7 +100,7 @@
|
|||
<string name="sk_open_with_account">다른 계정으로 열기</string>
|
||||
<string name="sk_resource_not_found">리소스를 찾을 수 없습니다</string>
|
||||
<string name="sk_loading_resource_on_instance_title">%s 인스턴스에서 찾아오는 중</string>
|
||||
<string name="sk_quote_post">언급하여 게시</string>
|
||||
<string name="sk_quote_post">인용하여 게시</string>
|
||||
<string name="sk_unsent_posts">게시하지 않은 게시물</string>
|
||||
<string name="sk_draft">초안 작성</string>
|
||||
<string name="sk_schedule">게시 예약</string>
|
||||
|
@ -240,7 +240,7 @@
|
|||
<string name="sk_settings_glitch_instance">Glitch 로컬에만 게시 모드</string>
|
||||
<string name="sk_settings_support_local_only">서버가 로컬에만 게시하는 것을 지원함</string>
|
||||
<string name="sk_inline_local_only">로컬에만 게시</string>
|
||||
<string name="sk_inline_direct">멘션한 사람에게만 게시</string>
|
||||
<string name="sk_inline_direct">멘션된 사람들만 보임</string>
|
||||
<string name="sk_instance_features">인스턴스 기능 목록</string>
|
||||
<string name="sk_settings_glitch_mode_explanation">사용하시는 인스턴스가 Glitch에서 실행 중인 경우 활성화하세요. Hometown이나 Akkoma의 경우 활성화할 필요가 없습니다.</string>
|
||||
<string name="sk_settings_see_new_posts_button">“새 게시물 보기” 버튼</string>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<string name="sk_settings_reply_visibility_all">모든 답글</string>
|
||||
<string name="sk_settings_reply_visibility_following">팔로우한 계정에 대한 답글</string>
|
||||
<string name="sk_settings_reply_visibility_self">나에 대한 답글</string>
|
||||
<string name="sk_quoting_user">%s 님 언급</string>
|
||||
<string name="sk_quoting_user">%s 님 인용</string>
|
||||
<string name="sk_reply_line_above_avatar">아바타 위의 “…님에게 답글” 정보</string>
|
||||
<string name="sk_show_thread">스레드 보기</string>
|
||||
<string name="sk_notification_action_replied">%s 님에게 답글을 보냈습니다</string>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<string name="sk_reply_as">တခြားအကောင့်ဖြင့် ရီပလိုင်းပြန်မည်</string>
|
||||
<string name="sk_translated_using">%s ဖြင့် ဘာသာပြန်ထားသည်</string>
|
||||
<string name="sk_post_language">ဘာသာစကား။ ။%s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_settings_filters">Filter များကို စီစဉ်မည်</string>
|
||||
<string name="sk_settings_auth">လုံခြုံရေးဆိုင်ရာ ဆက်တင်များ</string>
|
||||
<string name="sk_settings_rules">စည်းကမ်းချက်များ</string>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<string name="sk_bookmarked_as">Bookmark opgeslagen als %s</string>
|
||||
<string name="sk_already_bookmarked">Al als bookmark opgeslagen</string>
|
||||
<string name="sk_favorited_as">Als favoriet opgeslagen als %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_reply_as">Antwoord met ander account</string>
|
||||
<string name="sk_settings_uniform_icon_for_notifications">Zelfde icoon voor alle meldingen</string>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<string name="sk_translated_using">Przetłumaczono przy użyciu %s</string>
|
||||
<string name="sk_post_language">Język: %s</string>
|
||||
<string name="sk_available_languages">Dostępne języki</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Czy na pewno chcesz wyczyścić ostatnio użyte języki\?</string>
|
||||
<string name="sk_clear_recent_languages">Wyczyść ostatnio użyte języki</string>
|
||||
<string name="sk_example_domain">przykład.social</string>
|
||||
|
@ -271,6 +271,5 @@
|
|||
<string name="sk_reply_line_above_avatar">Tekst \"W odpowiedzi na\" nad avatarem</string>
|
||||
<string name="sk_show_thread">Pokaż wątek</string>
|
||||
<string name="sk_compact_reblog_reply_line">Zmniejsz linię reblogu/odpowiedzi</string>
|
||||
<string name="sk_settings_show_new_posts_button">Przycisk \"Pokaż nowe wpisy\"</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Potwierdź przed reblogowaniem</string>
|
||||
</resources>
|
|
@ -51,7 +51,7 @@
|
|||
<string name="sk_translated_using">Traduzido usando %s</string>
|
||||
<string name="sk_post_language">Idioma: %s</string>
|
||||
<string name="sk_available_languages">Idiomas disponíveis</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Você tem certeza que deseja limpar os idiomas usados recentemente\?</string>
|
||||
<string name="sk_clear_recent_languages">Limpar idiomas usados recentemente</string>
|
||||
<string name="sk_notify_posts">Notificações de publicações</string>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<string name="sk_translate_show_original">Показать оригинал</string>
|
||||
<string name="sk_translated_using">Переведено через %s</string>
|
||||
<string name="sk_available_languages">Доступные языки</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_welcome_title">Добро пожаловать!</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_settings_load_new_posts">Автоматически загружать новые посты</string>
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
<string name="sk_settings_color_palette">Barvna paleta</string>
|
||||
<string name="sk_poll_allow_multiple">Dovoli več izbir</string>
|
||||
<string name="sk_translate_show_original">Pokaži izvirnik</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_welcome_title">Dobrodošli!</string>
|
||||
<string name="sk_example_domain">primer.social</string>
|
||||
<string name="sk_already_bookmarked">Že dodano med zaznamke</string>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<string name="sk_translated_using">Перекладено за допомогою %s</string>
|
||||
<string name="sk_post_language">Мова: %s</string>
|
||||
<string name="sk_available_languages">Доступні мови</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_clear_recent_languages">Очистити нещодавно використані мови</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Завжди розкривати попередження про вміст</string>
|
||||
<string name="sk_notification_type_status">Дописи</string>
|
||||
|
@ -272,6 +272,5 @@
|
|||
<string name="sk_reply_line_above_avatar">Рядок «У відповідь» над аватаром</string>
|
||||
<string name="sk_show_thread">Показати потік</string>
|
||||
<string name="sk_compact_reblog_reply_line">Компактний рядок для поширеного допису/відповіді</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Запросити підтвердження перед репостом</string>
|
||||
<string name="sk_settings_show_new_posts_button">Кнопка \"Показати нові публікації\"</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Підтверджувати поширення</string>
|
||||
</resources>
|
|
@ -57,7 +57,7 @@
|
|||
<string name="sk_translated_using">使用 %s 翻译</string>
|
||||
<string name="sk_post_language">语言:%s</string>
|
||||
<string name="sk_available_languages">可用语言</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_tabs_disable_swipe">禁用选项卡之间的滑动</string>
|
||||
<string name="sk_settings_profile">设置个人资料</string>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<string name="sk_translated_using">通過 %s 翻譯</string>
|
||||
<string name="sk_post_language">語言: %s</string>
|
||||
<string name="sk_available_languages">可用語言</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_welcome_title">歡迎!</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">釘選</string>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<string name="sk_translated_using">Translated using %s</string>
|
||||
<string name="sk_post_language">Language: %s</string>
|
||||
<string name="sk_available_languages">Available languages</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_clear_recent_languages">Clear recently used languages</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Are you sure you want to clear your recently used languages?</string>
|
||||
<string name="sk_welcome_title">Welcome!</string>
|
||||
|
@ -89,8 +89,8 @@
|
|||
<string name="sk_settings_translation_availability_note_unavailable">%s does not appear to support translation.</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Looking it up on the Fediverse</string>
|
||||
<string name="sk_loading_resource_on_instance_title">Looking it up on %s</string>
|
||||
<string name="sk_undo_reblog">Undo reblog</string>
|
||||
<string name="sk_reblog_with_visibility">Reblog with visibility</string>
|
||||
<string name="sk_undo_reblog">Undo boost</string>
|
||||
<string name="sk_reblog_with_visibility">Boost with visibility</string>
|
||||
<string name="sk_quote_post">Post about this</string>
|
||||
<string name="sk_hashtags_you_follow">Hashtags you follow</string>
|
||||
<string name="sk_copy_link_to_post">Copy link to post</string>
|
||||
|
@ -102,9 +102,9 @@
|
|||
<string name="sk_favorite_as">Favorite with other account</string>
|
||||
<string name="sk_favorited_as">Favorited as %s</string>
|
||||
<string name="sk_already_favorited">Already favorited</string>
|
||||
<string name="sk_reblog_as">Reblog with other account</string>
|
||||
<string name="sk_reblogged_as">Reblogged as %s</string>
|
||||
<string name="sk_already_reblogged">Already reblogged</string>
|
||||
<string name="sk_reblog_as">Boost with other account</string>
|
||||
<string name="sk_reblogged_as">Boosted as %s</string>
|
||||
<string name="sk_already_reblogged">Already boosted</string>
|
||||
<string name="sk_reply_as">Reply with other account</string>
|
||||
<string name="sk_settings_uniform_icon_for_notifications">Uniform icon for all notifications</string>
|
||||
<string name="sk_forward_report_to">Forward to %s</string>
|
||||
|
@ -230,7 +230,7 @@
|
|||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_post_edited">edited</string>
|
||||
<string name="sk_notification_type_update">Edited posts</string>
|
||||
<string name="sk_notify_update">Edits a reblogged post</string>
|
||||
<string name="sk_notify_update">Edits a boosted post</string>
|
||||
<string name="sk_attach_file">Attach file</string>
|
||||
<string name="sk_searching">Searching…</string>
|
||||
<string name="sk_no_results">No results</string>
|
||||
|
@ -252,6 +252,7 @@
|
|||
<string name="sk_settings_glitch_mode_explanation">Enable this if your home instance runs on Glitch. Not needed for Hometown or Akkoma.</string>
|
||||
<string name="sk_signed_up">signed up</string>
|
||||
<string name="sk_reported">reported</string>
|
||||
<string name="sk_reacted">reacted with %s</string>
|
||||
<string name="sk_sign_ups">Users signing up</string>
|
||||
<string name="sk_new_reports">New reports</string>
|
||||
<string name="sk_settings_server_version">Server version: %s</string>
|
||||
|
@ -271,6 +272,6 @@
|
|||
<string name="sk_in_reply">In reply</string>
|
||||
<string name="sk_reply_line_above_avatar">“In reply to” line above avatar</string>
|
||||
<string name="sk_show_thread">Show thread</string>
|
||||
<string name="sk_compact_reblog_reply_line">Compact reblog/reply line</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirm before reblogging</string>
|
||||
<string name="sk_compact_reblog_reply_line">Compact boost/reply line</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirm before boosting</string>
|
||||
</resources>
|
|
@ -1,17 +0,0 @@
|
|||
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
|
||||
|
||||
<b>Key features</b>
|
||||
|
||||
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
|
||||
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
|
||||
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
|
||||
- <b>Pinning posts</b>: Pin your most important posts to your profile and see what others have pinned using the “Pinned“ tab.
|
||||
- <b>Bookmarks</b>: Quickly save posts and find them later in the Bookmarks list.
|
||||
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
|
||||
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
|
||||
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
|
||||
|
||||
<b>Unreleased official features, available in advance</b>
|
||||
|
||||
- Editing posts
|
||||
- Integrated updater for GitHub releases
|
|
@ -0,0 +1,5 @@
|
|||
- 알림창에서 바로 좋아요/보관/답글 달기
|
||||
- 타임라인에서 리블로그와 답글에 더 예쁘고 일관성 있는 헤더 제공
|
||||
- 알림 표시 점 (아직 실제로 알림을 확인하지 않은 경우)
|
||||
- Akkoma 유저를 위한 업데이트: 답글 표시 범위, 정렬된 스레드 답글, 인용, …
|
||||
- 충돌 수정 및 사소한 업데이트
|
Loading…
Reference in New Issue