Archived
Refactored string resources
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/appName"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
tools:ignore="GoogleAppIndexingWarning">
|
tools:ignore="GoogleAppIndexingWarning">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.Main"
|
android:name=".activities.Main"
|
||||||
android:label="@string/appName"
|
android:label="@string/app_name"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize"
|
android:configChanges="orientation|keyboardHidden|screenSize"
|
||||||
android:theme="@style/AppTheme0.Launcher"
|
android:theme="@style/AppTheme0.Launcher"
|
||||||
android:windowSoftInputMode="adjustPan">
|
android:windowSoftInputMode="adjustPan">
|
||||||
|
|||||||
@@ -79,14 +79,12 @@ internal class FirstTime : AppCompatActivity(R.layout.activity_first_time) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
helpGradeButton.setOnClickListener {
|
helpGradeButton.setOnClickListener {
|
||||||
createDialog(getString(R.string.enterGradeHelpTitle), getString(
|
createDialog(getString(R.string.grade_help_dialog_title), getString(
|
||||||
R.string.enterGradeHelp
|
R.string.grade_help_dialog_text
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
helpCoursesButton.setOnClickListener {
|
helpCoursesButton.setOnClickListener {
|
||||||
createDialog(getString(R.string.enterCoursesHelpTitle), getString(
|
createDialog(getString(R.string.courses_help_dialog_title), getString(R.string.courses_help_dialog_text))
|
||||||
R.string.enterCoursesHelp
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
val inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import android.webkit.WebView
|
|||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
@@ -70,7 +69,6 @@ internal class Login : AppCompatActivity(R.layout.activity_login_webview), Login
|
|||||||
webView.webViewClient = LoginWebViewClient(this@Login)
|
webView.webViewClient = LoginWebViewClient(this@Login)
|
||||||
openLoginPage(webView)
|
openLoginPage(webView)
|
||||||
handler.postDelayed({
|
handler.postDelayed({
|
||||||
webView.scrollY = -4000
|
|
||||||
}, 2000)
|
}, 2000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
|
|
||||||
if (!prefs.getBoolean("autoRefresh", false) && prefs.getInt("firstTimeOpening", 0) != 0) {
|
if (!prefs.getBoolean("autoRefresh", false) && prefs.getInt("firstTimeOpening", 0) != 0) {
|
||||||
try {
|
try {
|
||||||
Snackbar.make(contextView, "${getString(R.string.lastUpdated)} ${prefs.getString("timeNew", "")}", Snackbar.LENGTH_LONG).show()
|
Snackbar.make(contextView, "${getString(R.string.last_updated)} ${prefs.getString("timeNew", "")}", Snackbar.LENGTH_LONG).show()
|
||||||
} catch (e: IllegalArgumentException) {}
|
} catch (e: IllegalArgumentException) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
} else {
|
} else {
|
||||||
defaultFragment = GeneralPlanFragment()
|
defaultFragment = GeneralPlanFragment()
|
||||||
bottomNav.selectedItemId = R.id.plan
|
bottomNav.selectedItemId = R.id.plan
|
||||||
toolbarTxt.text = getString(R.string.appName)
|
toolbarTxt.text = getString(R.string.app_name)
|
||||||
}
|
}
|
||||||
loadFragment(defaultFragment)
|
loadFragment(defaultFragment)
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.plan -> {
|
R.id.plan -> {
|
||||||
fragment = GeneralPlanFragment()
|
fragment = GeneralPlanFragment()
|
||||||
toolbarTxt.text = getString(R.string.appName)
|
toolbarTxt.text = getString(R.string.app_name)
|
||||||
}
|
}
|
||||||
R.id.personal -> {
|
R.id.personal -> {
|
||||||
fragment = PersonalPlanFragment()
|
fragment = PersonalPlanFragment()
|
||||||
@@ -146,7 +146,7 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
}
|
}
|
||||||
R.id.menu -> {
|
R.id.menu -> {
|
||||||
fragment = FoodFragment()
|
fragment = FoodFragment()
|
||||||
toolbarTxt.text = getString(R.string.foodMenu)
|
toolbarTxt.text = getString(R.string.food_menu)
|
||||||
}
|
}
|
||||||
R.id.openinfopanel -> {
|
R.id.openinfopanel -> {
|
||||||
openInfoDialog()
|
openInfoDialog()
|
||||||
@@ -202,14 +202,14 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
private fun getGreetingString(): String {
|
private fun getGreetingString(): String {
|
||||||
val gen = Random()
|
val gen = Random()
|
||||||
return String.format(when (Calendar.getInstance().get(Calendar.HOUR_OF_DAY)) {
|
return String.format(when (Calendar.getInstance().get(Calendar.HOUR_OF_DAY)) {
|
||||||
in 5..10 -> resources.getStringArray(R.array.greetingsMorning)[gen.nextInt(resources.getStringArray(
|
in 5..10 -> resources.getStringArray(R.array.greetings_morning)[gen.nextInt(resources.getStringArray(
|
||||||
R.array.greetingsMorning
|
R.array.greetings_morning
|
||||||
).size)]
|
).size)]
|
||||||
in 11..17 -> resources.getStringArray(R.array.greetingsNoon)[gen.nextInt(resources.getStringArray(
|
in 11..17 -> resources.getStringArray(R.array.greetings_noon)[gen.nextInt(resources.getStringArray(
|
||||||
R.array.greetingsNoon
|
R.array.greetings_noon
|
||||||
).size)]
|
).size)]
|
||||||
else -> resources.getStringArray(R.array.greetingsEvening)[gen.nextInt(resources.getStringArray(
|
else -> resources.getStringArray(R.array.greetings_evening)[gen.nextInt(resources.getStringArray(
|
||||||
R.array.greetingsEvening
|
R.array.greetings_evening
|
||||||
).size)]
|
).size)]
|
||||||
}, prefs.getString("username", ""))
|
}, prefs.getString("username", ""))
|
||||||
}
|
}
|
||||||
@@ -220,7 +220,7 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
dialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
dialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
||||||
R.string.information
|
R.string.information
|
||||||
)
|
)
|
||||||
val dialogText = "${getString(R.string.lastUpdated)} ${prefs.getString("timeNew", "")}.\n\n${prefs.getString("informational", "")}".trim()
|
val dialogText = "${getString(R.string.last_updated)} ${prefs.getString("timeNew", "")}.\n\n${prefs.getString("informational", "")}".trim()
|
||||||
dialogView.findViewById<TextView>(R.id.dialogtext).text = dialogText
|
dialogView.findViewById<TextView>(R.id.dialogtext).text = dialogText
|
||||||
dialog.setView(dialogView).show()
|
dialog.setView(dialogView).show()
|
||||||
}
|
}
|
||||||
@@ -247,9 +247,9 @@ internal class Main : AppCompatActivity(R.layout.app_bar_main) {
|
|||||||
getString(R.string.yourPlan)
|
getString(R.string.yourPlan)
|
||||||
} else {
|
} else {
|
||||||
if (user.endsWith("s", true) || user.endsWith("x", true) || user.endsWith("z", true)) {
|
if (user.endsWith("s", true) || user.endsWith("x", true) || user.endsWith("z", true)) {
|
||||||
"$user${getString(R.string.noSPlan)}"
|
"$user${getString(R.string.no_s_plan)}"
|
||||||
} else {
|
} else {
|
||||||
"$user${getString(R.string.SPlan)}"
|
"$user${getString(R.string.s_plan)}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ internal class CardAdapter(private var mSubst: List<Subst>, private val prefs: S
|
|||||||
CustomTabsIntent.Builder().build().launchUrl(card.context,
|
CustomTabsIntent.Builder().build().launchUrl(card.context,
|
||||||
Uri.parse(date.text.toString().substring(3)))
|
Uri.parse(date.text.toString().substring(3)))
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
Toast.makeText(card.context, card.context.getString(R.string.chromeCompatibleNotFound), Toast.LENGTH_LONG).show()
|
Toast.makeText(card.context, card.context.getString(R.string.chrome_not_found), Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ internal class CardAdapter(private var mSubst: List<Subst>, private val prefs: S
|
|||||||
|
|
||||||
holder.date.visibility = if (currentItem.date.isNotEmpty() && currentItem.date.substring(0, 3) == "psa") {
|
holder.date.visibility = if (currentItem.date.isNotEmpty() && currentItem.date.substring(0, 3) == "psa") {
|
||||||
psa = true
|
psa = true
|
||||||
holder.time.text = " "
|
holder.time.text = " " // creating a margin on the right side
|
||||||
icon = R.drawable.ic_idea
|
icon = R.drawable.ic_idea
|
||||||
cardBackgroundColour = R.color.colorAccent
|
cardBackgroundColour = R.color.colorAccent
|
||||||
View.GONE
|
View.GONE
|
||||||
|
|||||||
@@ -74,12 +74,12 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
|
|||||||
|
|
||||||
if (plan || menu) {
|
if (plan || menu) {
|
||||||
mView.get()?.let { v: View ->
|
mView.get()?.let { v: View ->
|
||||||
var snackText = "${mContext.get()?.getText(R.string.lastUpdated)} ${when {
|
var snackText = "${mContext.get()?.getText(R.string.last_updated)} ${when {
|
||||||
plan -> currentTime
|
plan -> currentTime
|
||||||
menu -> currentFoodTime
|
menu -> currentFoodTime
|
||||||
else -> "---"
|
else -> "---"
|
||||||
}}"
|
}}"
|
||||||
snackText = if (forceRefresh) mContext.get()?.getString(R.string.forcedRefresh) ?: "" else snackText
|
snackText = if (forceRefresh) mContext.get()?.getString(R.string.force_refresh_successful) ?: "" else snackText
|
||||||
val snackBarView = v.findViewById<View>(R.id.coordination)
|
val snackBarView = v.findViewById<View>(R.id.coordination)
|
||||||
Snackbar.make(snackBarView, snackText, Snackbar.LENGTH_LONG).show()
|
Snackbar.make(snackBarView, snackText, Snackbar.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
|
|||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
mView.get()?.let { v: View ->
|
mView.get()?.let { v: View ->
|
||||||
val snackBarView = v.findViewById<View>(R.id.coordination)
|
val snackBarView = v.findViewById<View>(R.id.coordination)
|
||||||
Snackbar.make(snackBarView, mContext.get()?.getString(R.string.noInternet) ?: "", Snackbar.LENGTH_LONG).setBackgroundTint(ContextCompat.getColor(mContext.get()!!,
|
Snackbar.make(snackBarView, mContext.get()?.getString(R.string.no_internet_connection) ?: "", Snackbar.LENGTH_LONG).setBackgroundTint(ContextCompat.getColor(mContext.get()!!,
|
||||||
R.color.colorError
|
R.color.colorError
|
||||||
)).show()
|
)).show()
|
||||||
}
|
}
|
||||||
@@ -197,7 +197,7 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (countOfMoreNotificationItems > 0) {
|
if (countOfMoreNotificationItems > 0) {
|
||||||
notificationText += mContext.get()?.resources?.getQuantityString(R.plurals.moreMessages, countOfMoreNotificationItems, countOfMoreNotificationItems)
|
notificationText += mContext.get()?.resources?.getQuantityString(R.plurals.notification_more_messages, countOfMoreNotificationItems, countOfMoreNotificationItems)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
|
|||||||
|
|
||||||
val notificationLayout = RemoteViews(context.packageName, R.layout.notification)
|
val notificationLayout = RemoteViews(context.packageName, R.layout.notification)
|
||||||
notificationLayout.setTextViewText(R.id.notification_title, context.getString(
|
notificationLayout.setTextViewText(R.id.notification_title, context.getString(
|
||||||
R.string.substitutionPlan
|
R.string.substitution_plan
|
||||||
))
|
))
|
||||||
notificationLayout.setTextViewText(R.id.notification_textview, notificationText)
|
notificationLayout.setTextViewText(R.id.notification_textview, notificationText)
|
||||||
|
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ internal object HelperFunctions {
|
|||||||
out.close()
|
out.close()
|
||||||
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, context.getString(R.string.permissionDenied), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
|
||||||
requestPermissions(activity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
requestPermissions(activity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -251,7 +251,7 @@ internal object HelperFunctions {
|
|||||||
}
|
}
|
||||||
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.success), Toast.LENGTH_LONG).show()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, context.getString(R.string.permissionDenied), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, context.getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
|
||||||
requestPermissions(activity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
requestPermissions(activity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 42)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ internal class LoginWebViewClient(successListener: OnLoginSuccessListener) : Web
|
|||||||
*/
|
*/
|
||||||
override fun onPageFinished(view: WebView?, url: String?) {
|
override fun onPageFinished(view: WebView?, url: String?) {
|
||||||
super.onPageFinished(view, url)
|
super.onPageFinished(view, url)
|
||||||
|
view?.scrollY = -4000
|
||||||
val cookies = CookieManager.getInstance().getCookie(url)
|
val cookies = CookieManager.getInstance().getCookie(url)
|
||||||
|
|
||||||
if (cookies.contains("joomla_user_state=logged_in")) {
|
if (cookies.contains("joomla_user_state=logged_in")) {
|
||||||
@@ -36,7 +37,7 @@ internal class LoginWebViewClient(successListener: OnLoginSuccessListener) : Web
|
|||||||
internal interface OnLoginSuccessListener {
|
internal interface OnLoginSuccessListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the function that can be overridden to check whether a successful login has occurred
|
* this function can be overridden to execute code when a login has been successful
|
||||||
*
|
*
|
||||||
* @param success boolean value that returns true if the cookie could be found,
|
* @param success boolean value that returns true if the cookie could be found,
|
||||||
* false otherwise
|
* false otherwise
|
||||||
|
|||||||
@@ -97,13 +97,13 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
forceRefreshButton.setOnClickListener(this)
|
forceRefreshButton.setOnClickListener(this)
|
||||||
forceRefreshButton.setOnLongClickListener {
|
forceRefreshButton.setOnLongClickListener {
|
||||||
prefs.edit().putString("timeNew", "").putString("newFoodTime", "").apply()
|
prefs.edit().putString("timeNew", "").putString("newFoodTime", "").apply()
|
||||||
makeToast(mContext.getString(R.string.forcedRefreshTimes))
|
makeToast(mContext.getString(R.string.force_refresh_cleared_times))
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
val darkModeDropDown = view.findViewById<AutoCompleteTextView>(R.id.darkModeDropDownText)
|
val darkModeDropDown = view.findViewById<AutoCompleteTextView>(R.id.darkModeDropDownText)
|
||||||
val darkModeList = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
|
val darkModeList = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
|
||||||
R.array.themesPreQ
|
R.array.themes_pre_q
|
||||||
} else {
|
} else {
|
||||||
R.array.themes
|
R.array.themes
|
||||||
}
|
}
|
||||||
@@ -184,73 +184,34 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
})
|
})
|
||||||
|
|
||||||
versionButton.setOnLongClickListener {
|
versionButton.setOnLongClickListener {
|
||||||
makeToast(getString(R.string.madeBy))
|
|
||||||
debugMenu()
|
debugMenu()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onClick(v: View?) {
|
override fun onClick(v: View?) {
|
||||||
when (v?.id) {
|
when (v?.id) {
|
||||||
R.id.chipHelpCourses -> createDialog(getString(R.string.enterCoursesHelpTitle), getString(
|
R.id.chipHelpCourses -> createDialog(getString(R.string.courses_help_dialog_title), getString(R.string.courses_help_dialog_text))
|
||||||
R.string.enterCoursesHelp
|
R.id.chipHelpClasses -> createDialog(getString(R.string.grade_help_dialog_title), getString(
|
||||||
))
|
R.string.grade_help_dialog_text
|
||||||
R.id.chipHelpClasses -> createDialog(getString(R.string.enterGradeHelpTitle), getString(
|
|
||||||
R.string.enterGradeHelp
|
|
||||||
))
|
))
|
||||||
R.id.btnCustomiseColours -> createColourDialog()
|
R.id.btnCustomiseColours -> createColourDialog()
|
||||||
R.id.btnNoNotif -> createDialog(mContext.getString(R.string.notReceivingNotifications1), mContext.getString(R.string.notReceivingNotificationsHelp))
|
R.id.btnNoNotif -> createDialog(mContext.getString(R.string.no_notifications_title), mContext.getString(R.string.no_notifications_dialog_text))
|
||||||
R.id.btnCustomiseRingtone -> createRingtoneDialog()
|
R.id.btnCustomiseRingtone -> createRingtoneDialog()
|
||||||
R.id.btnWebsite -> {
|
R.id.btnWebsite -> {
|
||||||
try {
|
try {
|
||||||
customTabsIntent.launchUrl(mContext, Uri.parse("http://307.joomla.schule.bremen.de"))
|
customTabsIntent.launchUrl(mContext, Uri.parse("http://307.joomla.schule.bremen.de"))
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
makeToast(getString(R.string.chromeCompatibleNotFound))
|
makeToast(getString(R.string.chrome_not_found))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.btnLicences -> {
|
R.id.btnLicences -> {
|
||||||
createDialog("Licences", "Libraries:\n • jsoup HTML parser © 2009-2018 Jonathan Hedley, licensed under the open source MIT Licence" +
|
createDialog(mContext.getString(R.string.licences_title), licences)
|
||||||
"\n\nFont:\n • Manrope © 2018-2019 Michael Sharanda, licensed under the SIL Open Font Licence 1.1" +
|
|
||||||
"\n\nIcons:\n • bqlqn\n • fjstudio\n • Freepik\n • Smashicons\n • © 2013-2019 Freepik Company S.L., licensed under Creative Commons BY 3.0" +
|
|
||||||
"\n\nAdditional help:\n • Leon Becker\n • Alex Lick\n • Batuhan Özcan\n • Erich Kerkesner")
|
|
||||||
}
|
}
|
||||||
R.id.btnTerms -> {
|
R.id.btnTerms -> {
|
||||||
createDialog("Terms & Conditions", "These terms automatically apply to anyone using this app - therefore, please make sure to read them carefully before using the app. Copying or modifying parts of the app or the entire app, as well as creating derivative versions, is prohibited without permission. This app is intellectual property of the developer.\n" +
|
createDialog("Terms & Conditions", termsAndConditions)
|
||||||
"\nThe developer reserves the right to make changes to the app at any given time and for any reason. The user will be informed of any changes made accordingly.\n" +
|
|
||||||
"\nTampering with the end device, in the form of rooting or otherwise modifying the operating system may result in malfunction of the software. In this case, the developer does not provide support, as the user is responsible for keeping the device free of software that may compromise its security.\n" +
|
|
||||||
"\nFull functionality of the app relies on a steady internet connection. The developer does not take responsibility for malfunction of these services, nor for any errors caused by the end device. The user is responsible for ensuring that their device is fully updated and fully functioning.\n" +
|
|
||||||
"\nAs the app relies on third-parties, information provided in-app may be delayed or incorrect at times. The developer accepts no liability for any information mistakenly provided in the app.\n" +
|
|
||||||
"\nThe developer may wish to update the app at any point. Should such action arise, then the user is advised to update the app to ensure proper functionality. However, the developer does not promise that the app will be continuously updated, and may stop providing the app at any point. Unless told otherwise, upon any termination, (a) the rights and licenses granted to the user in these terms will end; (b) the user must stop using the app, and (if needed) delete it from their device.\n" +
|
|
||||||
"\nChanges to these Terms & Conditions\n" +
|
|
||||||
"\nThe developer may update these Terms & Conditions from time to time. Thus, the user is advised to review this page periodically for any changes. Any changes are effective immediately after they are posted on this page.\n" +
|
|
||||||
"\nContact Us\n" +
|
|
||||||
"\nIn case of questions or suggestions regarding these Terms & Conditions, the user is advised to contact the developer of this app. Contact information is provided through the Play Store.\n" +
|
|
||||||
"\n---\n" +
|
|
||||||
"\nThese Terms & Conditions were modified upon the template provided by App Privacy Policy Generator. This service is in no way affiliated with AvH Plan or the developer.")
|
|
||||||
}
|
}
|
||||||
R.id.btnPrivacyP -> {
|
R.id.btnPrivacyP -> {
|
||||||
createDialog("Privacy Policy", "The app \"Alexander-von-Humboldt-Plan\", hereby abbreviated to AvH Plan, is provided as a free service by the developer for use as is.\n" +
|
createDialog("Privacy Policy", privacyPolicy)
|
||||||
"\nThis page is used to inform visitors and users regarding policies with the collection, use, and disclosure of personal information, if they choose to make use of the service.\n" +
|
|
||||||
"\nAvH Plan does not collect, store, share, or in any other way use personal information retrieved from its users. Any information asked for within the app is only used to improve the user experience and as such, is stored locally and cannot be accessed by third-parties or be used to identify the user.\n" +
|
|
||||||
"\nInformation Collection and Use\n" +
|
|
||||||
"\nAt this moment, AvH Plan does not require personally identifiable information for its core functionality. Certain features do require entering information that may be personally identifiable, however, this data will be retained on the user's device and is therefore not accessible outside the app\n" +
|
|
||||||
"\nLog Data\n" +
|
|
||||||
"\nIn the case of an error in the app, device-specific data may be collected and stored on your phone. This data is called Log Data. This Log Data may include information, such as your device's Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilising the service, the time and date when the last usage occured, and other statistics. This data can not be used to personally identify any user.\n" +
|
|
||||||
"\nCookies\n" +
|
|
||||||
"\nCookies are files with small amounts of data that are commonly used as anonymous unique identifiers on the web. AvH Plan strives to not make use of cookies for its functionality, however, as its functionality requires access to third-party-websites, cookies may be unintentionally collected by the device's web browser. AvH Plan does not make use of these cookies in any way.\n" +
|
|
||||||
"\nService Providers\n" +
|
|
||||||
"\nNo third-parties are employed for providing any functionality or services of the AvH Plan-app and as such, all functionality is accessible without directly sharing personal data with third-parties.\n" +
|
|
||||||
"\nSecurity\n" +
|
|
||||||
"\nWhile absolute security cannot be ensured due to the internet functionality the app employs, no information is shared over any transmission methods.\n" +
|
|
||||||
"\nLinks to Other Sites\n" +
|
|
||||||
"\nThis Service may contain links to other sites, which are not operated by the developer of AvH Plan. The user is advised to review the privacy policy of any webpage they may access through the app. No responsibility for the content of these third-party websites is provided by the app developer.\n" +
|
|
||||||
"\nChildren’s Privacy\n" +
|
|
||||||
"\nThe service does not address anyone under the age of 13. As the app does not collect any information from its users, no data is collected from users that may be under the age of 13.\n" +
|
|
||||||
"\nChanges to This Privacy Policy\n" +
|
|
||||||
"\nThis privacy policy may be updated as the AvH Plan app is updated with new features. As such, the user is advised to review this page periodically for any changes. Any changes that may be made are effective immediately upon publishing.\n" +
|
|
||||||
"\nContact Us\n" +
|
|
||||||
"\nIn case of questions or suggestions regarding this privacy policy, the user is advised to contact the developer of this app. Contact information is provided through the Play Store.\n" +
|
|
||||||
"\n---\n" +
|
|
||||||
"\nThis privacy policy was modified upon the template provided by privacypolicytemplate.net and App Privacy Policy Generator. These services are in no way affiliated with AvH Plan or the developer.")
|
|
||||||
}
|
}
|
||||||
R.id.btnForceRefresh -> {
|
R.id.btnForceRefresh -> {
|
||||||
DataFetcher(
|
DataFetcher(
|
||||||
@@ -305,7 +266,7 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
|
|
||||||
val dialogView = View.inflate(mContext, R.layout.recycler_dialog, null)
|
val dialogView = View.inflate(mContext, R.layout.recycler_dialog, null)
|
||||||
val titleText = dialogView.findViewById<TextView>(R.id.empty_textviewtitle)
|
val titleText = dialogView.findViewById<TextView>(R.id.empty_textviewtitle)
|
||||||
titleText.text = getString(R.string.customiseColoursTitle)
|
titleText.text = getString(R.string.customise_colours_title)
|
||||||
colourRecycler = dialogView.findViewById(R.id.recyclerView)
|
colourRecycler = dialogView.findViewById(R.id.recyclerView)
|
||||||
colourRecycler.apply {
|
colourRecycler.apply {
|
||||||
hasFixedSize()
|
hasFixedSize()
|
||||||
@@ -320,23 +281,23 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
private fun getColourList(): ArrayList<Colour> {
|
private fun getColourList(): ArrayList<Colour> {
|
||||||
val colours = ArrayList<Colour>()
|
val colours = ArrayList<Colour>()
|
||||||
val coursesNoLang = HelperFunctions.languageIndependentCourses
|
val coursesNoLang = HelperFunctions.languageIndependentCourses
|
||||||
val courses = arrayOf(getString(R.string.courseDeu), getString(
|
val courses = arrayOf(getString(R.string.course_deu), getString(
|
||||||
R.string.courseEng
|
R.string.course_eng
|
||||||
), getString(R.string.courseFra), getString(R.string.courseSpa), getString(
|
), getString(R.string.course_fra), getString(R.string.course_spa), getString(
|
||||||
R.string.courseLat
|
R.string.course_lat
|
||||||
), getString(R.string.courseTue), getString(R.string.courseChi), getString(
|
), getString(R.string.course_tue), getString(R.string.course_chi), getString(
|
||||||
R.string.courseKun
|
R.string.course_kun
|
||||||
), getString(R.string.courseMus), getString(R.string.courseDar), getString(
|
), getString(R.string.course_mus), getString(R.string.course_dar), getString(
|
||||||
R.string.courseGeg
|
R.string.course_geg
|
||||||
), getString(R.string.courseGes), getString(R.string.coursePol), getString(
|
), getString(R.string.course_ges), getString(R.string.course_pol), getString(
|
||||||
R.string.coursePhi
|
R.string.course_phi
|
||||||
), getString(R.string.courseRel), getString(R.string.courseMat), getString(
|
), getString(R.string.course_rel), getString(R.string.course_mat), getString(
|
||||||
R.string.courseBio
|
R.string.course_bio
|
||||||
), getString(R.string.courseChe), getString(R.string.coursePhy), getString(
|
), getString(R.string.course_che), getString(R.string.course_phy), getString(
|
||||||
R.string.courseInf
|
R.string.course_inf
|
||||||
), getString(R.string.courseSpo), getString(R.string.courseGll), getString(
|
), getString(R.string.course_spo), getString(R.string.course_gll), getString(
|
||||||
R.string.courseWat
|
R.string.course_wat
|
||||||
), getString(R.string.courseFor), getString(R.string.courseWp))
|
), getString(R.string.course_foer), getString(R.string.course_wp))
|
||||||
val coursesIcons = intArrayOf(R.drawable.ic_german, R.drawable.ic_english, R.drawable.ic_french,
|
val coursesIcons = intArrayOf(R.drawable.ic_german, R.drawable.ic_english, R.drawable.ic_french,
|
||||||
R.drawable.ic_spanish, R.drawable.ic_latin, R.drawable.ic_turkish, R.drawable.ic_chinese,
|
R.drawable.ic_spanish, R.drawable.ic_latin, R.drawable.ic_turkish, R.drawable.ic_chinese,
|
||||||
R.drawable.ic_arts, R.drawable.ic_music, R.drawable.ic_drama, R.drawable.ic_geography,
|
R.drawable.ic_arts, R.drawable.ic_music, R.drawable.ic_drama, R.drawable.ic_geography,
|
||||||
@@ -372,7 +333,7 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
|
|
||||||
val dialogView = View.inflate(mContext, R.layout.recycler_dialog, null)
|
val dialogView = View.inflate(mContext, R.layout.recycler_dialog, null)
|
||||||
val titleText = dialogView.findViewById<TextView>(R.id.empty_textviewtitle)
|
val titleText = dialogView.findViewById<TextView>(R.id.empty_textviewtitle)
|
||||||
titleText.text = getString(R.string.pickRingtone)
|
titleText.text = getString(R.string.pick_ringtone_dialog_title)
|
||||||
|
|
||||||
val recycler = dialogView.findViewById<RecyclerView>(R.id.recyclerView)
|
val recycler = dialogView.findViewById<RecyclerView>(R.id.recyclerView)
|
||||||
recycler.apply {
|
recycler.apply {
|
||||||
@@ -421,14 +382,14 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
|
|
||||||
private fun setRingtoneText() {
|
private fun setRingtoneText() {
|
||||||
currentRingtone.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
currentRingtone.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
mContext.getString(R.string.deviceSettingsRedirect)
|
mContext.getString(R.string.pick_ringtone_desc_o)
|
||||||
} else {
|
} else {
|
||||||
val tone = if ((prefs.getString("ringtoneName", "") ?: "").isNotEmpty()) {
|
val tone = if ((prefs.getString("ringtoneName", "") ?: "").isNotEmpty()) {
|
||||||
prefs.getString("ringtoneName", "")
|
prefs.getString("ringtoneName", "")
|
||||||
} else {
|
} else {
|
||||||
mContext.getString(R.string.defaultRingtone)
|
mContext.getString(R.string.default_ringtone)
|
||||||
}
|
}
|
||||||
mContext.getString(R.string.setRingtone2, tone)
|
mContext.getString(R.string.pick_ringtone_desc, tone)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -469,10 +430,10 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
val dialogButton = dialogView.findViewById<Button>(R.id.dialog_button)
|
val dialogButton = dialogView.findViewById<Button>(R.id.dialog_button)
|
||||||
|
|
||||||
dialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
dialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
||||||
R.string.experimentalMenu
|
R.string.experimental_menu_dialog_title
|
||||||
)
|
)
|
||||||
dialogView.findViewById<TextView>(R.id.dialogtext).text = getString(
|
dialogView.findViewById<TextView>(R.id.dialogtext).text = getString(
|
||||||
R.string.menuForTests
|
R.string.experimental_menu_dialog_text
|
||||||
)
|
)
|
||||||
dialogButton.setOnClickListener {
|
dialogButton.setOnClickListener {
|
||||||
when (dialogEditText.text.toString()) {
|
when (dialogEditText.text.toString()) {
|
||||||
@@ -484,7 +445,7 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
val resetNotificationBtn = devDialogView.findViewById<Button>(R.id.btnResetNotif)
|
val resetNotificationBtn = devDialogView.findViewById<Button>(R.id.btnResetNotif)
|
||||||
|
|
||||||
devDialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
devDialogView.findViewById<TextView>(R.id.textviewtitle).text = getString(
|
||||||
R.string.diagnosticsMenu
|
R.string.diagnostics_dialog_title
|
||||||
)
|
)
|
||||||
devDialogText.text = getDiagnosticsText()
|
devDialogText.text = getDiagnosticsText()
|
||||||
|
|
||||||
@@ -507,7 +468,7 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setPackage("com.google.android.youtube")
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setPackage("com.google.android.youtube")
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
makeToast(getString(R.string.youtubeNotFound))
|
makeToast(getString(R.string.youtube_not_found))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"_FIRSTTIME" -> {
|
"_FIRSTTIME" -> {
|
||||||
@@ -543,7 +504,7 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
}
|
}
|
||||||
"_WRITE" -> HelperFunctions.writePrefsToXml(prefs, mContext, activity!!)
|
"_WRITE" -> HelperFunctions.writePrefsToXml(prefs, mContext, activity!!)
|
||||||
"_READ" -> HelperFunctions.readPrefsFromXml(prefs, mContext, activity!!)
|
"_READ" -> HelperFunctions.readPrefsFromXml(prefs, mContext, activity!!)
|
||||||
else -> makeToast(getString(R.string.invalidCode))
|
else -> makeToast(getString(R.string.invalid_code))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
alertDialog.setView(dialogView)
|
alertDialog.setView(dialogView)
|
||||||
@@ -569,4 +530,55 @@ internal class SettingsFragment : Fragment(R.layout.content_settings), View.OnCl
|
|||||||
|
|
||||||
private fun subscribeToTopic(topic: Topic) = FirebaseMessaging.getInstance().subscribeToTopic(topic.tag)
|
private fun subscribeToTopic(topic: Topic) = FirebaseMessaging.getInstance().subscribeToTopic(topic.tag)
|
||||||
private fun unsubscribeFromTopic(topic: Topic) = FirebaseMessaging.getInstance().unsubscribeFromTopic(topic.tag)
|
private fun unsubscribeFromTopic(topic: Topic) = FirebaseMessaging.getInstance().unsubscribeFromTopic(topic.tag)
|
||||||
|
|
||||||
|
private val licences = "Libraries:" +
|
||||||
|
"\n • jsoup HTML parser © 2009-2018 Jonathan Hedley, licensed under the open source MIT Licence" +
|
||||||
|
"\n\nFont:" +
|
||||||
|
"\n • Manrope © 2018-2019 Michael Sharanda, licensed under the SIL Open Font Licence 1.1" +
|
||||||
|
"\n\nIcons:" +
|
||||||
|
"\n • bqlqn\n • fjstudio\n • Freepik\n • Smashicons" +
|
||||||
|
"\n • © 2013-2019 Freepik Company S.L., licensed under Creative Commons BY 3.0" +
|
||||||
|
"\n\nHuman resources:" +
|
||||||
|
"\n • Deniz Düzgören (Development & publishing)" +
|
||||||
|
"\n • Leon Becker (Initial marketing)" +
|
||||||
|
"\n • Alex Lick (Marketing & Play Store account)" +
|
||||||
|
"\n • Batuhan Özcan (Marketing & Play Store account)" +
|
||||||
|
"\n • Erich Kerkesner (Marketing & Play Store account)"
|
||||||
|
|
||||||
|
private val termsAndConditions = "These terms automatically apply to anyone using this app - therefore, please make sure to read them carefully before using the app. Copying or modifying parts of the app or the entire app, as well as creating derivative versions, is prohibited without permission. This app is intellectual property of the developer.\n" +
|
||||||
|
"\nThe developer reserves the right to make changes to the app at any given time and for any reason. The user will be informed of any changes made accordingly.\n" +
|
||||||
|
"\nTampering with the end device, in the form of rooting or otherwise modifying the operating system may result in malfunction of the software. In this case, the developer does not provide support, as the user is responsible for keeping the device free of software that may compromise its security.\n" +
|
||||||
|
"\nFull functionality of the app relies on a steady internet connection. The developer does not take responsibility for malfunction of these services, nor for any errors caused by the end device. The user is responsible for ensuring that their device is fully updated and fully functioning.\n" +
|
||||||
|
"\nAs the app relies on third-parties, information provided in-app may be delayed or incorrect at times. The developer accepts no liability for any information mistakenly provided in the app.\n" +
|
||||||
|
"\nThe developer may wish to update the app at any point. Should such action arise, then the user is advised to update the app to ensure proper functionality. However, the developer does not promise that the app will be continuously updated, and may stop providing the app at any point. Unless told otherwise, upon any termination, (a) the rights and licenses granted to the user in these terms will end; (b) the user must stop using the app, and (if needed) delete it from their device.\n" +
|
||||||
|
"\nChanges to these Terms & Conditions\n" +
|
||||||
|
"\nThe developer may update these Terms & Conditions from time to time. Thus, the user is advised to review this page periodically for any changes. Any changes are effective immediately after they are posted on this page.\n" +
|
||||||
|
"\nContact Us\n" +
|
||||||
|
"\nIn case of questions or suggestions regarding these Terms & Conditions, the user is advised to contact the developer of this app. Contact information is provided through the Play Store.\n" +
|
||||||
|
"\n---\n" +
|
||||||
|
"\nThese Terms & Conditions were modified upon the template provided by App Privacy Policy Generator. This service is in no way affiliated with AvH Plan or the developer."
|
||||||
|
|
||||||
|
private val privacyPolicy = "The app \"Alexander-von-Humboldt-Plan\", hereby abbreviated to AvH Plan, is provided as a free service by the developer for use as is.\n" +
|
||||||
|
"\nThis page is used to inform visitors and users regarding policies with the collection, use, and disclosure of personal information, if they choose to make use of the service.\n" +
|
||||||
|
"\nAvH Plan does not collect, store, share, or in any other way use personal information retrieved from its users. Any information asked for within the app is only used to improve the user experience and as such, is stored locally and cannot be accessed by third-parties or be used to identify the user.\n" +
|
||||||
|
"\nInformation Collection and Use\n" +
|
||||||
|
"\nAt this moment, AvH Plan does not require personally identifiable information for its core functionality. Certain features do require entering information that may be personally identifiable, however, this data will be retained on the user's device and is therefore not accessible outside the app\n" +
|
||||||
|
"\nLog Data\n" +
|
||||||
|
"\nIn the case of an error in the app, device-specific data may be collected and stored on your phone. This data is called Log Data. This Log Data may include information, such as your device's Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilising the service, the time and date when the last usage occured, and other statistics. This data can not be used to personally identify any user.\n" +
|
||||||
|
"\nCookies\n" +
|
||||||
|
"\nCookies are files with small amounts of data that are commonly used as anonymous unique identifiers on the web. AvH Plan strives to not make use of cookies for its functionality, however, as its functionality requires access to third-party-websites, cookies may be unintentionally collected by the device's web browser. AvH Plan does not make use of these cookies in any way.\n" +
|
||||||
|
"\nService Providers\n" +
|
||||||
|
"\nNo third-parties are employed for providing any functionality or services of the AvH Plan-app and as such, all functionality is accessible without directly sharing personal data with third-parties.\n" +
|
||||||
|
"\nSecurity\n" +
|
||||||
|
"\nWhile absolute security cannot be ensured due to the internet functionality the app employs, no information is shared over any transmission methods.\n" +
|
||||||
|
"\nLinks to Other Sites\n" +
|
||||||
|
"\nThis Service may contain links to other sites, which are not operated by the developer of AvH Plan. The user is advised to review the privacy policy of any webpage they may access through the app. No responsibility for the content of these third-party websites is provided by the app developer.\n" +
|
||||||
|
"\nChildren’s Privacy\n" +
|
||||||
|
"\nThe service does not address anyone under the age of 13. As the app does not collect any information from its users, no data is collected from users that may be under the age of 13.\n" +
|
||||||
|
"\nChanges to This Privacy Policy\n" +
|
||||||
|
"\nThis privacy policy may be updated as the AvH Plan app is updated with new features. As such, the user is advised to review this page periodically for any changes. Any changes that may be made are effective immediately upon publishing.\n" +
|
||||||
|
"\nContact Us\n" +
|
||||||
|
"\nIn case of questions or suggestions regarding this privacy policy, the user is advised to contact the developer of this app. Contact information is provided through the Play Store.\n" +
|
||||||
|
"\n---\n" +
|
||||||
|
"\nThis privacy policy was modified upon the template provided by privacypolicytemplate.net and App Privacy Policy Generator. These services are in no way affiliated with AvH Plan or the developer."
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
android:shareInterpolator="false">
|
android:shareInterpolator="false">
|
||||||
<!-- Step 1 -->
|
<!-- Step 1 -->
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
android:duration="@android:integer/config_mediumAnimTime"
|
android:duration="600"
|
||||||
android:propertyName="pathData"
|
android:propertyName="pathData"
|
||||||
android:valueFrom="M 12 17 C 13.1 17 14 16.1 14 15 C 14 13.9 13.1 13 12 13 C 10.9 13 10 13.9 10 15 C 10 16.1 10.9 17 12 17 Z M 18 8 L 17 8 L 17 6 C 17 3.24 14.76 1 12 1 C 9.24 1 7 3 7 8 L 8.9 8 C 8.6 4 10.29 2.9 12 2.9 C 13.71 2.9 15.1 4.29 15.1 6 L 15.1 8 L 6 8 C 4.9 8 4 8.9 4 10 L 4 20 C 4 21.1 4.9 22 6 22 L 18 22 C 19.1 22 20 21.1 20 20 L 20 10 C 20 8.9 19.1 8 18 8 Z M 18 20 L 6 20 L 6 10 L 18 10 L 18 20 Z"
|
android:valueFrom="M 12 17 C 13.1 17 14 16.1 14 15 C 14 13.9 13.1 13 12 13 C 10.9 13 10 13.9 10 15 C 10 16.1 10.9 17 12 17 Z M 18 8 L 17 8 L 17 6 C 17 3.24 14.76 1 12 1 C 9.24 1 7 3 7 8 L 8.9 8 C 8.6 4 10.29 2.9 12 2.9 C 13.71 2.9 15.1 4.29 15.1 6 L 15.1 8 L 6 8 C 4.9 8 4 8.9 4 10 L 4 20 C 4 21.1 4.9 22 6 22 L 18 22 C 19.1 22 20 21.1 20 20 L 20 10 C 20 8.9 19.1 8 18 8 Z M 18 20 L 6 20 L 6 10 L 18 10 L 18 20 Z"
|
||||||
android:valueTo="M 12 17 C 13.1 17 14 16.1 14 15 C 14 13.9 13.1 13 12 13 C 10.9 13 10 13.9 10 15 C 10 16.1 10.9 17 12 17 Z M 18 8 L 17 8 L 17 6 C 17 3.24 14.76 1 12 1 C 9.24 1 7 3.24 7 6 L 8.9 6 C 8.9 4.29 10.29 2.9 12 2.9 C 13.71 2.9 15.1 4.29 15.1 6 L 15.1 8 L 6 8 C 4.9 8 4 8.9 4 10 L 4 20 C 4 21.1 4.9 22 6 22 L 18 22 C 19.1 22 20 21.1 20 20 L 20 10 C 20 8.9 19.1 8 18 8 Z M 18 20 L 6 20 L 6 10 L 18 10 L 18 20 Z"
|
android:valueTo="M 12 17 C 13.1 17 14 16.1 14 15 C 14 13.9 13.1 13 12 13 C 10.9 13 10 13.9 10 15 C 10 16.1 10.9 17 12 17 Z M 18 8 L 17 8 L 17 6 C 17 3.24 14.76 1 12 1 C 9.24 1 7 3.24 7 6 L 8.9 6 C 8.9 4.29 10.29 2.9 12 2.9 C 13.71 2.9 15.1 4.29 15.1 6 L 15.1 8 L 6 8 C 4.9 8 4 8.9 4 10 L 4 20 C 4 21.1 4.9 22 6 22 L 18 22 C 19.1 22 20 21.1 20 20 L 20 10 C 20 8.9 19.1 8 18 8 Z M 18 20 L 6 20 L 6 10 L 18 10 L 18 20 Z"
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:text="@string/firstSomeThings"
|
android:text="@string/first_setup_text"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:text="@string/tellMeYourName"
|
android:text="@string/name_text"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:hint="@string/yourName"
|
android:hint="@string/your_name"
|
||||||
android:textColorHint="@color/colorHint"
|
android:textColorHint="@color/colorHint"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txttellmename"
|
app:layout_constraintStart_toStartOf="@+id/txttellmename"
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
android:text="@string/nextGrade"
|
android:text="@string/grade_text"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/txtLayoutClasses"
|
app:layout_constraintEnd_toEndOf="@+id/txtLayoutClasses"
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:hint="@string/yourGrade"
|
android:hint="@string/your_grade"
|
||||||
android:textColorHint="@color/colorHint"
|
android:textColorHint="@color/colorHint"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/chipHelpClasses"
|
app:layout_constraintEnd_toStartOf="@+id/chipHelpClasses"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtNextClass"
|
app:layout_constraintStart_toStartOf="@+id/txtNextClass"
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
android:id="@+id/txtSenior"
|
android:id="@+id/txtSenior"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/seniorCourses"
|
android:text="@string/senior_courses_text"
|
||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:hint="@string/yourCourses"
|
android:hint="@string/your_courses"
|
||||||
android:textColorHint="@color/colorHint"
|
android:textColorHint="@color/colorHint"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/chipHelpCourses"
|
app:layout_constraintEnd_toStartOf="@+id/chipHelpCourses"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtSenior"
|
app:layout_constraintStart_toStartOf="@+id/txtSenior"
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/moreSettings"
|
android:text="@string/more_settings_text"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/txtLayoutClasses"
|
app:layout_constraintEnd_toEndOf="@+id/txtLayoutClasses"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtLayoutClasses"
|
app:layout_constraintStart_toStartOf="@+id/txtLayoutClasses"
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
android:id="@+id/cbGreetings"
|
android:id="@+id/cbGreetings"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/enableGreeting"
|
android:text="@string/greeting_title"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp"/>
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
android:id="@+id/cbDark"
|
android:id="@+id/cbDark"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/enableDarkMode"
|
android:text="@string/enable_dark_mode"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp"/>
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
android:id="@+id/cbNotif"
|
android:id="@+id/cbNotif"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/notificationsAndSync"
|
android:text="@string/enable_course_notifications"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp"/>
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
android:id="@+id/cbPersonalised"
|
android:id="@+id/cbPersonalised"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/personalised"
|
android:text="@string/default_plan_title"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp"/>
|
||||||
@@ -278,7 +278,7 @@
|
|||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:backgroundTint="@color/colorAccent"
|
android:backgroundTint="@color/colorAccent"
|
||||||
android:text="@string/letsGo"
|
android:text="@string/lets_go"
|
||||||
android:textColor="@color/colorBackground"
|
android:textColor="@color/colorBackground"
|
||||||
app:icon="@drawable/ic_tick"
|
app:icon="@drawable/ic_tick"
|
||||||
app:iconTint="@color/colorBackground"
|
app:iconTint="@color/colorBackground"
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="start"
|
android:layout_gravity="start"
|
||||||
android:fontFamily="@font/manrope_extrabold"
|
android:fontFamily="@font/manrope_extrabold"
|
||||||
android:text="@string/appName"
|
android:text="@string/app_name"
|
||||||
android:textColor="@color/colorAccent"
|
android:textColor="@color/colorAccent"
|
||||||
android:textSize="28sp"
|
android:textSize="28sp"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:hint="@string/yourName"
|
android:hint="@string/your_name"
|
||||||
android:importantForAutofill="no"
|
android:importantForAutofill="no"
|
||||||
android:textColorHint="@color/colorHint"
|
android:textColorHint="@color/colorHint"
|
||||||
app:boxStrokeColor="@color/colorAccent"
|
app:boxStrokeColor="@color/colorAccent"
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/enableGreeting"
|
android:text="@string/greeting_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtPersonalise"
|
app:layout_constraintStart_toStartOf="@+id/txtPersonalise"
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
android:id="@+id/txtJustnice"
|
android:id="@+id/txtJustnice"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/justBeingNice"
|
android:text="@string/greeting_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtGreeting"
|
app:layout_constraintStart_toStartOf="@+id/txtGreeting"
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:editable="false"
|
android:editable="false"
|
||||||
android:hint="@string/appTheme"
|
android:hint="@string/app_theme"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp"/>
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/customiseColoursTitle"
|
android:text="@string/customise_colours_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtJustnice"
|
app:layout_constraintStart_toStartOf="@+id/txtJustnice"
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/customiseColoursIndividually"
|
android:text="@string/customise_colours_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/txtNotifications"
|
app:layout_constraintBottom_toTopOf="@+id/txtNotifications"
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/enableNotifications"
|
android:text="@string/enable_course_notifications_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtCustomiseColours2"
|
app:layout_constraintStart_toStartOf="@+id/txtCustomiseColours2"
|
||||||
@@ -186,7 +186,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/enablesBackgroundSync"
|
android:text="@string/enable_course_notifications_desc"
|
||||||
android:textAlignment="textStart"
|
android:textAlignment="textStart"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/notReceivingNotifications1"
|
android:text="@string/no_notifications_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtNotifiedAbout"
|
app:layout_constraintStart_toStartOf="@+id/txtNotifiedAbout"
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/notReceivingNotifications2"
|
android:text="@string/no_notifications_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/txtCustomiseRingtone"
|
app:layout_constraintBottom_toTopOf="@+id/txtCustomiseRingtone"
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/setRingtone"
|
android:text="@string/pick_ringtone_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtNotifiedAbout"
|
app:layout_constraintStart_toStartOf="@+id/txtNotifiedAbout"
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/setRingtone2"
|
android:text="@string/pick_ringtone_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@@ -436,7 +436,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/personalised"
|
android:text="@string/default_plan_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtMisc"
|
app:layout_constraintStart_toStartOf="@+id/txtMisc"
|
||||||
@@ -446,7 +446,7 @@
|
|||||||
android:id="@+id/txtDefaultsTo"
|
android:id="@+id/txtDefaultsTo"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/defaultsToPlan"
|
android:text="@string/default_plan_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtPersonalised"
|
app:layout_constraintStart_toStartOf="@+id/txtPersonalised"
|
||||||
@@ -468,7 +468,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/autoRefresh"
|
android:text="@string/auto_refresh_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtDefaultsTo"
|
app:layout_constraintStart_toStartOf="@+id/txtDefaultsTo"
|
||||||
@@ -478,7 +478,7 @@
|
|||||||
android:id="@+id/txtAutoRefreshTwo"
|
android:id="@+id/txtAutoRefreshTwo"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/ifSyncNotWorking"
|
android:text="@string/auto_refresh_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtAutoRefresh"
|
app:layout_constraintStart_toStartOf="@+id/txtAutoRefresh"
|
||||||
@@ -500,7 +500,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/forceRefreshTxt"
|
android:text="@string/force_refresh_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtAutoRefreshTwo"
|
app:layout_constraintStart_toStartOf="@+id/txtAutoRefreshTwo"
|
||||||
@@ -510,7 +510,7 @@
|
|||||||
android:id="@+id/txtForceRefresh2"
|
android:id="@+id/txtForceRefresh2"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/forceRefreshTxt2"
|
android:text="@string/force_refresh_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
@@ -538,7 +538,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/visitWebsite"
|
android:text="@string/visit_website_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtForceRefresh2"
|
app:layout_constraintStart_toStartOf="@+id/txtForceRefresh2"
|
||||||
@@ -548,7 +548,7 @@
|
|||||||
android:id="@+id/txtWeb"
|
android:id="@+id/txtWeb"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/ifYouNeedTo"
|
android:text="@string/visit_website_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtForceRefresh"
|
app:layout_constraintStart_toStartOf="@+id/txtForceRefresh"
|
||||||
@@ -575,7 +575,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/licences"
|
android:text="@string/licences_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtWeb"
|
app:layout_constraintStart_toStartOf="@+id/txtWeb"
|
||||||
@@ -585,7 +585,7 @@
|
|||||||
android:id="@+id/txtWhatittook"
|
android:id="@+id/txtWhatittook"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/whatItTook"
|
android:text="@string/licences_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtLicences"
|
app:layout_constraintStart_toStartOf="@+id/txtLicences"
|
||||||
@@ -611,7 +611,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/tac"
|
android:text="@string/terms_and_conditions_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtLicences"
|
app:layout_constraintStart_toStartOf="@+id/txtLicences"
|
||||||
@@ -621,7 +621,7 @@
|
|||||||
android:id="@+id/txtTermsTwo"
|
android:id="@+id/txtTermsTwo"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/reviewTac"
|
android:text="@string/terms_and_conditions_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtTerms"
|
app:layout_constraintStart_toStartOf="@+id/txtTerms"
|
||||||
@@ -648,7 +648,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:text="@string/privacy"
|
android:text="@string/privacy_policy_title"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtTermsTwo"
|
app:layout_constraintStart_toStartOf="@+id/txtTermsTwo"
|
||||||
@@ -658,7 +658,7 @@
|
|||||||
android:id="@+id/txtPrivacyPTwo"
|
android:id="@+id/txtPrivacyPTwo"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/reviewPrivacy"
|
android:text="@string/privacy_policy_desc"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
app:layout_constraintStart_toStartOf="@+id/txtPrivacyP"
|
app:layout_constraintStart_toStartOf="@+id/txtPrivacyP"
|
||||||
|
|||||||
@@ -106,9 +106,10 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
android:textAlignment="textEnd"
|
android:textAlignment="textEnd"
|
||||||
android:textColor="@color/colorText"
|
android:textColor="@color/colorText"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/date"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/date"
|
app:layout_constraintTop_toBottomOf="@+id/date"
|
||||||
app:layout_constraintWidth_max="200dp" />
|
app:layout_constraintWidth_max="200dp" />
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
android:id="@+id/smileydowntext"
|
android:id="@+id/smileydowntext"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/noSubstitutionsForYou"
|
android:text="@string/no_personal_substitutions"
|
||||||
app:layout_anchor="@+id/smileydown"
|
app:layout_anchor="@+id/smileydown"
|
||||||
android:layout_gravity="bottom|center_horizontal"
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
android:textColor="@color/colorHint"
|
android:textColor="@color/colorHint"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:text="@string/haveFun"
|
android:text="@string/setup_successful"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="30sp"
|
android:textSize="30sp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -1,93 +1,92 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="appName">AvH-Plan</string>
|
<string name="app_name">AvH-Plan</string>
|
||||||
<string name="filters">Filter</string>
|
<string name="filters">Filter</string>
|
||||||
<string name="noInternet">Keine Internetverbindung</string>
|
<string name="no_internet_connection">Keine Internetverbindung</string>
|
||||||
<string name="general">Allgemein</string>
|
<string name="general">Allgemein</string>
|
||||||
<string name="grade">Klasse</string>
|
<string name="grade">Klasse</string>
|
||||||
<string name="courses">Kurse</string>
|
<string name="courses">Kurse</string>
|
||||||
<string name="substitutionPlan">Vertretungsplan</string>
|
<string name="substitution_plan">Vertretungsplan</string>
|
||||||
<string name="personal">Persönlich</string>
|
<string name="personal">Persönlich</string>
|
||||||
<string name="settings">Einstellungen</string>
|
<string name="settings">Einstellungen</string>
|
||||||
<string name="enableNotifications">Aktiviere Kursbenachrichtigungen</string>
|
<string name="enable_course_notifications_title">Aktiviere Kursbenachrichtigungen</string>
|
||||||
<string name="enablesBackgroundSync">Hat keinen Einfluss auf Mitteilungen</string>
|
<string name="enable_course_notifications_desc">Hat keinen Einfluss auf Mitteilungen</string>
|
||||||
<string name="personalise">Personalisieren</string>
|
<string name="personalise">Personalisieren</string>
|
||||||
<string name="misc">Diverses</string>
|
<string name="misc">Diverses</string>
|
||||||
<string name="defaultsToPlan">Standardmäßig ansonsten allgemeiner Plan</string>
|
<string name="default_plan_desc">Standardmäßig ansonsten allgemeiner Plan</string>
|
||||||
<string name="personalised">Persönlicher Plan als Standard</string>
|
<string name="default_plan_title">Persönlicher Plan als Standard</string>
|
||||||
<string name="visitWebsite">Besuche die Schulwebsite</string>
|
<string name="visit_website_title">Besuche die Schulwebsite</string>
|
||||||
<string name="ifYouNeedTo">Falls nötig</string>
|
<string name="visit_website_desc">Falls nötig</string>
|
||||||
<string name="menu">Menü</string>
|
<string name="menu">Menü</string>
|
||||||
<string name="foodMenu">Speiseplan</string>
|
<string name="food_menu">Speiseplan</string>
|
||||||
<string name="letsGo">Los geht\'s!</string>
|
<string name="lets_go">Los geht\'s!</string>
|
||||||
<string name="welcome">Willkommen!</string>
|
<string name="welcome">Willkommen!</string>
|
||||||
<string name="firstSomeThings">Lass uns erst einige Sachen einrichten.</string>
|
<string name="first_setup_text">Lass uns erst einige Sachen einrichten.</string>
|
||||||
<string name="tellMeYourName">Nenne mir deinen Namen.</string>
|
<string name="name_text">Nenne mir deinen Namen.</string>
|
||||||
<string name="yourName">Dein Name</string>
|
<string name="your_name">Dein Name</string>
|
||||||
<string name="nextGrade">Sag mir als nächstes, in welcher Klasse du bist.</string>
|
<string name="grade_text">Sag mir als nächstes, in welcher Klasse du bist.</string>
|
||||||
<string name="yourGrade">Deine Klasse</string>
|
<string name="your_grade">Deine Klasse</string>
|
||||||
<string name="seniorCourses">Falls du in der Oberstufe bist, nenne mir bitte auch deine Kurse.</string>
|
<string name="senior_courses_text">Falls du in der Oberstufe bist, nenne mir bitte auch deine Kurse.</string>
|
||||||
<string name="yourCourses">Deine Kurse</string>
|
<string name="your_courses">Deine Kurse</string>
|
||||||
<string name="moreSettings">Nur noch ein paar weitere Einstellungen.</string>
|
<string name="more_settings_text">Nur noch ein paar weitere Einstellungen.</string>
|
||||||
<string name="enableDarkMode">Dunklen Hintergrund aktivieren</string>
|
<string name="enable_dark_mode">Dunklen Hintergrund aktivieren</string>
|
||||||
<string name="haveFun">Viel Spaß!</string>
|
<string name="setup_successful">Viel Spaß!</string>
|
||||||
<string name="enableGreeting">Aktiviere Begrüßungen</string>
|
<string name="greeting_title">Aktiviere Begrüßungen</string>
|
||||||
<string name="justBeingNice">Falls du möchtest, dass ich nett bin :)</string>
|
<string name="greeting_desc">Falls du möchtest, dass ich nett bin :)</string>
|
||||||
<string name="licences">Lizenzen</string>
|
<string name="licences_title">Lizenzen</string>
|
||||||
<string name="whatItTook">Was die App ausmacht (Englisch)</string>
|
<string name="licences_desc">Was die App ausmacht (Englisch)</string>
|
||||||
<string name="version">Versionsnummer</string>
|
<string name="version">Versionsnummer</string>
|
||||||
<string name="privacy">Datenschutzerklärung</string>
|
<string name="privacy_policy_title">Datenschutzerklärung</string>
|
||||||
<string name="tac">AGB</string>
|
<string name="terms_and_conditions_title">AGB</string>
|
||||||
<string name="reviewTac">Überprüfe die AGB der App (Englisch)</string>
|
<string name="terms_and_conditions_desc">Überprüfe die AGB der App (Englisch)</string>
|
||||||
<string name="reviewPrivacy">Überprüfe die Datenschutzerklärung der App (Englisch)</string>
|
<string name="privacy_policy_desc">Überprüfe die Datenschutzerklärung der App (Englisch)</string>
|
||||||
<string name="information">Informationen</string>
|
<string name="information">Informationen</string>
|
||||||
<string name="madeBy">Entwickelt von Deniz :)</string>
|
<string name="made_by_deniz">Entwickelt von Deniz :)</string>
|
||||||
<string name="autoRefresh">Aktualisiere Plan bei App-Start</string>
|
<string name="auto_refresh_title">Aktualisiere Plan bei App-Start</string>
|
||||||
<string name="ifSyncNotWorking">Falls Hintergrund-Sync nicht funktioniert</string>
|
<string name="auto_refresh_desc">Falls Hintergrund-Sync nicht funktioniert</string>
|
||||||
<string name="enterCoursesHelpTitle">Wie du deine Kurse eintragen kannst</string>
|
<string name="courses_help_dialog_title">Wie du deine Kurse eintragen kannst</string>
|
||||||
<string name="enterGradeHelpTitle">Wie du deine Klasse eintragen kannst</string>
|
<string name="grade_help_dialog_title">Wie du deine Klasse eintragen kannst</string>
|
||||||
<string name="enterCoursesHelp">Trag die Kürzel für die Kurse ein, welche in deinem persönlichen Plan auftauchen sollen und über welche du benachrichtigt werden möchtest. Du kannst diese auf deinem Stundenplan finden.\n\nHier sind einige Beispiele:\n\nMathe in der 5. Klasse (Mittelstufe) wäre MAT.\n\nDer Englisch-Profilkurs in der E-Phase könnte ENP1 sein.\n\nDer Bio-Grundkurs in der Q1 ist z.B. bio1.\n\nMeist müssen Kurse für Mittelstufenschüler nicht eingetragen werden.\nTrenne mehrere Kurse mit Leerzeichen, Kommas sind optional.\nGroß- und Kleinschreibung wird beachtet.</string>
|
<string name="courses_help_dialog_text">Trag die Kürzel für die Kurse ein, welche in deinem persönlichen Plan auftauchen sollen und über welche du benachrichtigt werden möchtest. Du kannst diese auf deinem Stundenplan finden.\n\nHier sind einige Beispiele:\n\nMathe in der 5. Klasse (Mittelstufe) wäre MAT.\n\nDer Englisch-Profilkurs in der E-Phase könnte ENP1 sein.\n\nDer Bio-Grundkurs in der Q1 ist z.B. bio1.\n\nMeist müssen Kurse für Mittelstufenschüler nicht eingetragen werden.\nTrenne mehrere Kurse mit Leerzeichen, Kommas sind optional.\nGroß- und Kleinschreibung wird beachtet.</string>
|
||||||
<string name="enterGradeHelp">Trage deine derzeitige Klasse ein, damit sie in deinem persönlichen Plan auftaucht und über Aktualisierungen informiert zu werden.\n\nAnmerkung:\n\nIn der Mittelstufe müssen Nummer und Buchstabe zusammen geschrieben werden, Beispiel: \"5a\".\n\nIn der E-Phase müssen diese durch ein Leerzeichen getrennt werden, Beispiel: \"18 a\".\n\nIn der Q1/Q2 sollen nur die Nummern eingetragen werden, Beispiel: \"17\".\n\nMehrere Klassen können nur eingetragen werden, wenn keine Kurse eingetragen sind.</string>
|
<string name="grade_help_dialog_text">Trage deine derzeitige Klasse ein, damit sie in deinem persönlichen Plan auftaucht und über Aktualisierungen informiert zu werden.\n\nAnmerkung:\n\nIn der Mittelstufe müssen Nummer und Buchstabe zusammen geschrieben werden, Beispiel: \"5a\".\n\nIn der E-Phase müssen diese durch ein Leerzeichen getrennt werden, Beispiel: \"18 a\".\n\nIn der Q1/Q2 sollen nur die Nummern eingetragen werden, Beispiel: \"17\".\n\nMehrere Klassen können nur eingetragen werden, wenn keine Kurse eingetragen sind.</string>
|
||||||
<string name="dontTellHim">Er darf das nicht erfahren :0</string>
|
<string name="experimental_menu_dialog_text">Dieses Menü ist derzeit nur für Tests gedacht. Zusätzliche Funktionalität könnte in der Zukunft hinzugefügt werden. Probier\' gerne zufällige Codes aus.</string>
|
||||||
<string name="menuForTests">Dieses Menü ist derzeit nur für Tests gedacht. Zusätzliche Funktionalität könnte in der Zukunft hinzugefügt werden. Probier\' gerne zufällige Codes aus.</string>
|
|
||||||
<string name="apply">Anwenden</string>
|
<string name="apply">Anwenden</string>
|
||||||
<string name="invalidCode">Ungültiger Code</string>
|
<string name="invalid_code">Ungültiger Code</string>
|
||||||
<string name="experimentalMenu">Experimentalmenü</string>
|
<string name="experimental_menu_dialog_title">Experimentalmenü</string>
|
||||||
<string name="diagnosticsMenu">Diagnosemenü</string>
|
<string name="diagnostics_dialog_title">Diagnosemenü</string>
|
||||||
<string name="notificationsAndSync">Kursbenachrichtigungen aktivieren</string>
|
<string name="enable_course_notifications">Kursbenachrichtigungen aktivieren</string>
|
||||||
<string name="noSubstitutionsForYou">Kein Entfall für dich</string>
|
<string name="no_personal_substitutions">Kein Entfall für dich</string>
|
||||||
<string name="customiseColoursTitle">Benutzerdefinierte Farben</string>
|
<string name="customise_colours_title">Benutzerdefinierte Farben</string>
|
||||||
<string name="customiseColoursIndividually">Farben für jedes Fach einstellen</string>
|
<string name="customise_colours_desc">Farben für jedes Fach einstellen</string>
|
||||||
<string name="courseDeu">Deutsch (+ DAZ)</string>
|
<string name="course_deu">Deutsch (+ DAZ)</string>
|
||||||
<string name="courseMat">Mathematik</string>
|
<string name="course_mat">Mathematik</string>
|
||||||
<string name="courseEng">Englisch (+ ENA)</string>
|
<string name="course_eng">Englisch (+ ENA)</string>
|
||||||
<string name="courseSpo">Sport</string>
|
<string name="course_spo">Sport</string>
|
||||||
<string name="coursePol">Politik</string>
|
<string name="course_pol">Politik</string>
|
||||||
<string name="courseDar">Darstellendes Spiel</string>
|
<string name="course_dar">Darstellendes Spiel</string>
|
||||||
<string name="coursePhy">Physik</string>
|
<string name="course_phy">Physik</string>
|
||||||
<string name="courseBio">Biologie & Naturwissenschaften</string>
|
<string name="course_bio">Biologie & Naturwissenschaften</string>
|
||||||
<string name="courseChe">Chemie</string>
|
<string name="course_che">Chemie</string>
|
||||||
<string name="coursePhi">Philosophie</string>
|
<string name="course_phi">Philosophie</string>
|
||||||
<string name="courseLat">Latein</string>
|
<string name="course_lat">Latein</string>
|
||||||
<string name="courseSpa">Spanisch</string>
|
<string name="course_spa">Spanisch</string>
|
||||||
<string name="courseFra">Französisch</string>
|
<string name="course_fra">Französisch</string>
|
||||||
<string name="courseInf">Informatik</string>
|
<string name="course_inf">Informatik</string>
|
||||||
<string name="courseGes">Geschichte</string>
|
<string name="course_ges">Geschichte</string>
|
||||||
<string name="courseRel">Religion</string>
|
<string name="course_rel">Religion</string>
|
||||||
<string name="courseGeg">Geographie & WUK</string>
|
<string name="course_geg">Geographie & WUK</string>
|
||||||
<string name="courseKun">Kunst</string>
|
<string name="course_kun">Kunst</string>
|
||||||
<string name="courseMus">Musik</string>
|
<string name="course_mus">Musik</string>
|
||||||
<string name="courseTue">Türkisch</string>
|
<string name="course_tue">Türkisch</string>
|
||||||
<string name="courseChi">Chinesisch</string>
|
<string name="course_chi">Chinesisch</string>
|
||||||
<string name="courseGll">GLL</string>
|
<string name="course_gll">GLL</string>
|
||||||
<string name="courseWat">WAT</string>
|
<string name="course_wat">WAT</string>
|
||||||
<string name="courseFor">Förderunterricht</string>
|
<string name="course_foer">Förderunterricht</string>
|
||||||
<string name="courseWp">WP & Methodenstunde</string>
|
<string name="course_wp">WP & Methodenstunde</string>
|
||||||
<string name="chromeCompatibleNotFound">Kein Chrome-kompatibler Browser gefunden</string>
|
<string name="chrome_not_found">Kein Chrome-kompatibler Browser gefunden</string>
|
||||||
<string name="youtubeNotFound">YouTube-App nicht gefunden</string>
|
<string name="youtube_not_found">YouTube-App nicht gefunden</string>
|
||||||
<string name="lastUpdated">Zuletzt aktualisiert:</string>
|
<string name="last_updated">Zuletzt aktualisiert:</string>
|
||||||
<string name="yourPlan">Dein Plan</string>
|
<string name="yourPlan">Dein Plan</string>
|
||||||
<string-array name="greetingsMorning">
|
<string-array name="greetings_morning">
|
||||||
<item>Hallo, %s!</item>
|
<item>Hallo, %s!</item>
|
||||||
<item>Guten Morgen, %s!</item>
|
<item>Guten Morgen, %s!</item>
|
||||||
<item>Hab einen schönen Tag, %s.</item>
|
<item>Hab einen schönen Tag, %s.</item>
|
||||||
@@ -98,7 +97,7 @@
|
|||||||
<item>Schön dich zu sehen, %s.</item>
|
<item>Schön dich zu sehen, %s.</item>
|
||||||
<item>Wie geht\'s dir so, %s?</item>
|
<item>Wie geht\'s dir so, %s?</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="greetingsNoon">
|
<string-array name="greetings_noon">
|
||||||
<item>Hallo, %s!</item>
|
<item>Hallo, %s!</item>
|
||||||
<item>Guten Tag, %s!</item>
|
<item>Guten Tag, %s!</item>
|
||||||
<item>Einen schönen Tag noch, %s.</item>
|
<item>Einen schönen Tag noch, %s.</item>
|
||||||
@@ -109,7 +108,7 @@
|
|||||||
<item>Schön dich zu sehen, %s.</item>
|
<item>Schön dich zu sehen, %s.</item>
|
||||||
<item>Genieß\' deinen Tag, %s.</item>
|
<item>Genieß\' deinen Tag, %s.</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="greetingsEvening">
|
<string-array name="greetings_evening">
|
||||||
<item>Hallo, %s!</item>
|
<item>Hallo, %s!</item>
|
||||||
<item>Schönen Abend, %s!</item>
|
<item>Schönen Abend, %s!</item>
|
||||||
<item>Genieß\' deinen Abend, %s.</item>
|
<item>Genieß\' deinen Abend, %s.</item>
|
||||||
@@ -118,39 +117,39 @@
|
|||||||
<item>Hi %s!</item>
|
<item>Hi %s!</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="setRingtone">Benutzerdefinierter Benachrichtungston</string>
|
<string name="pick_ringtone_title">Benutzerdefinierter Benachrichtungston</string>
|
||||||
<string name="setRingtone2">Derzeit: %s</string>
|
<string name="pick_ringtone_desc">Derzeit: %s</string>
|
||||||
<string name="pickRingtone">Wähle einen Benachrichtigungston</string>
|
<string name="pick_ringtone_dialog_title">Wähle einen Benachrichtigungston</string>
|
||||||
<string name="deviceSettingsRedirect">Öffnet Geräteinstellungen</string>
|
<string name="pick_ringtone_desc_o">Öffnet Geräteinstellungen</string>
|
||||||
<string name="defaultRingtone">Standard</string>
|
<string name="default_ringtone">Standard</string>
|
||||||
<string name="permissionDenied">Bitte erlaube Speicherzugriff</string>
|
<string name="permission_denied">Bitte erlaube Speicherzugriff</string>
|
||||||
<string name="success">Erfolg</string>
|
<string name="success">Erfolg</string>
|
||||||
<string name="notReceivingNotifications1">Benachrichtigungen kommen nicht an?</string>
|
<string name="no_notifications_title">Benachrichtigungen kommen nicht an?</string>
|
||||||
<string name="notReceivingNotifications2">Klick hier um zu sehen, warum</string>
|
<string name="no_notifications_desc">Klick hier um zu sehen, warum</string>
|
||||||
<string name="notReceivingNotificationsHelp">Bemerke, dass diese Tipps insbesondere auf einigen Geräten chinesischer Hersteller nicht funktionieren könnten. Du kannst sie trotzdem ausprobieren.\n\nAkkusparfunktionen können dazu führen, dass Benachrichtigungen nicht ankommen. Versuche, Akkusparmodi auf deren Standardeinstellung zu setzen.\n\nEinige Geräte beschränken Apps im Hintergrund. Suche in deinen Geräteeinstellungen unter Apps die Vertretungsplan-App und schaue dann nach einer Einstellung namens \"Hintergrund-Services beschränken\" (oder ähnlich) und stelle sicher, dass diese ausgestellt ist.\n\nBei Schwierigkeiten kann ich auch gerne helfen.</string>
|
<string name="no_notifications_dialog_text">Bemerke, dass diese Tipps insbesondere auf einigen Geräten chinesischer Hersteller nicht funktionieren könnten. Du kannst sie trotzdem ausprobieren.\n\nAkkusparfunktionen können dazu führen, dass Benachrichtigungen nicht ankommen. Versuche, Akkusparmodi auf deren Standardeinstellung zu setzen.\n\nEinige Geräte beschränken Apps im Hintergrund. Suche in deinen Geräteeinstellungen unter Apps die Vertretungsplan-App und schaue dann nach einer Einstellung namens \"Hintergrund-Services beschränken\" (oder ähnlich) und stelle sicher, dass diese ausgestellt ist.\n\nBei Schwierigkeiten kann ich auch gerne helfen.</string>
|
||||||
<string name="appTheme">App-Design</string>
|
<string name="app_theme">App-Design</string>
|
||||||
<string-array name="themes">
|
<string-array name="themes">
|
||||||
<item>Hell</item>
|
<item>Hell</item>
|
||||||
<item>Dunkel</item>
|
<item>Dunkel</item>
|
||||||
<item>System folgen</item>
|
<item>System folgen</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="themesPreQ">
|
<string-array name="themes_pre_q">
|
||||||
<item>Hell</item>
|
<item>Hell</item>
|
||||||
<item>Dunkel</item>
|
<item>Dunkel</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="forcedRefresh">Aktualisierung erfolgreich</string>
|
<string name="force_refresh_successful">Aktualisierung erfolgreich</string>
|
||||||
<string name="forcedRefreshTimes">Aktualisierungszeiten wurden gelöscht</string>
|
<string name="force_refresh_cleared_times">Aktualisierungszeiten wurden gelöscht</string>
|
||||||
<string name="forceRefreshTxt">Erzwinge eine Aktualisierung</string>
|
<string name="force_refresh_title">Erzwinge eine Aktualisierung</string>
|
||||||
<string name="forceRefreshTxt2">Nutz dies falls du Plan oder Speisemenü nicht sehen kannst</string>
|
<string name="force_refresh_desc">Nutz dies falls du Plan oder Speisemenü nicht sehen kannst</string>
|
||||||
|
|
||||||
<string name="noSPlan">\' Plan</string>
|
<string name="no_s_plan">\' Plan</string>
|
||||||
<string name="SPlan">s Plan</string>
|
<string name="s_plan">s Plan</string>
|
||||||
|
|
||||||
<plurals name="moreMessages">
|
<plurals name="notification_more_messages">
|
||||||
<item quantity="one">,\nund %d weitere Nachricht</item>
|
<item quantity="one">,\nund %d weitere Nachricht</item>
|
||||||
<item quantity="other">,\nund %d weitere Nachrichten</item>
|
<item quantity="other">,\nund %d weitere Nachrichten</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="login_required">Bitte klicke die Schaltfäche unten und gib deinen Nutzernamen und dein Passwort ein, um zu zeigen, dass du am Alexander-von-Humboldt-Gymnasium beschäftigt bist.\n\nDieser Login ist nur einmalig und deine Informationen werden nicht mit anderen geteilt.</string>
|
<string name="login_required">Bitte klicke die Schaltfäche unten und gib deinen Nutzernamen und dein Passwort ein, um zu zeigen, dass du am Alexander-von-Humboldt-Gymnasium beschäftigt bist.\n\nDieser Login ist nur einmalig und deine Informationen werden nicht mit anderen geteilt.\n\nFalls du dich erfolgreich eingeloggt hast, die Einrichtung aber nicht fortfährt, dann geh bitte zurück und versuche es noch mal.</string>
|
||||||
<string name="hello">Hallo!</string>
|
<string name="hello">Hallo!</string>
|
||||||
<string name="username">Dein Nutzername</string>
|
<string name="username">Dein Nutzername</string>
|
||||||
<string name="password">Dein Password</string>
|
<string name="password">Dein Password</string>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="appName">AvH Plan</string>
|
<string name="app_name">AvH Plan</string>
|
||||||
<string name="substitutionPlan">Substitution Plan</string>
|
<string name="substitution_plan">Substitution Plan</string>
|
||||||
<string name="filters">Filters</string>
|
<string name="filters">Filters</string>
|
||||||
<string name="noInternet">No internet connection</string>
|
<string name="no_internet_connection">No internet connection</string>
|
||||||
<string name="general">General</string>
|
<string name="general">General</string>
|
||||||
<string name="grade">Grade</string>
|
<string name="grade">Grade</string>
|
||||||
<string name="courses">Courses</string>
|
<string name="courses">Courses</string>
|
||||||
@@ -11,96 +11,95 @@
|
|||||||
<string name="settings">Settings</string>
|
<string name="settings">Settings</string>
|
||||||
|
|
||||||
<!-- for Settings fragment -->
|
<!-- for Settings fragment -->
|
||||||
<string name="enableNotifications">Enable course notifications</string>
|
<string name="enable_course_notifications_title">Enable course notifications</string>
|
||||||
<string name="enablesBackgroundSync">This does not affect broadcasts</string>
|
<string name="enable_course_notifications_desc">This does not affect broadcasts</string>
|
||||||
|
|
||||||
<string name="personalise">Personalise</string>
|
<string name="personalise">Personalise</string>
|
||||||
<string name="misc">Miscellaneous</string>
|
<string name="misc">Miscellaneous</string>
|
||||||
<string name="personalised">Set personalised plan as default</string>
|
<string name="default_plan_title">Set personalised plan as default</string>
|
||||||
<string name="defaultsToPlan">Defaults to general plan otherwise</string>
|
<string name="default_plan_desc">Defaults to general plan otherwise</string>
|
||||||
<string name="visitWebsite">Visit the school\'s website</string>
|
<string name="visit_website_title">Visit the school\'s website</string>
|
||||||
<string name="ifYouNeedTo">In case you need to</string>
|
<string name="visit_website_desc">In case you need to</string>
|
||||||
<string name="menu">Menu</string>
|
<string name="menu">Menu</string>
|
||||||
<string name="foodMenu">Food Menu</string>
|
<string name="food_menu">Food Menu</string>
|
||||||
<string name="letsGo">Let\'s Go!</string>
|
<string name="lets_go">Let\'s Go!</string>
|
||||||
<string name="welcome">Welcome!</string>
|
<string name="welcome">Welcome!</string>
|
||||||
<string name="firstSomeThings">First, let\'s setup some things.</string>
|
<string name="first_setup_text">First, let\'s setup some things.</string>
|
||||||
<string name="tellMeYourName">Tell me your name.</string>
|
<string name="name_text">Tell me your name.</string>
|
||||||
<string name="yourName">Your name</string>
|
<string name="your_name">Your name</string>
|
||||||
<string name="nextGrade">Next, tell me which grade you\'re in.</string>
|
<string name="grade_text">Next, tell me which grade you\'re in.</string>
|
||||||
<string name="yourGrade">Your grade</string>
|
<string name="your_grade">Your grade</string>
|
||||||
<string name="seniorCourses">If you\'re in senior phase (E-Phase, Q-Phase), please also tell me which courses you\'re enrolled in.</string>
|
<string name="senior_courses_text">If you\'re in senior phase (E-Phase, Q-Phase), please also tell me which courses you\'re enrolled in.</string>
|
||||||
<string name="yourCourses">Your courses</string>
|
<string name="your_courses">Your courses</string>
|
||||||
<string name="moreSettings">Lastly, just a few more settings.</string>
|
<string name="more_settings_text">Lastly, just a few more settings.</string>
|
||||||
<string name="notificationsAndSync">Receive course notifications</string>
|
<string name="enable_course_notifications">Receive course notifications</string>
|
||||||
<string name="enableDarkMode">Enable dark mode</string>
|
<string name="enable_dark_mode">Enable dark mode</string>
|
||||||
<string name="haveFun">Have fun!</string>
|
<string name="setup_successful">Have fun!</string>
|
||||||
|
|
||||||
<string name="enableGreeting">Enable greeting</string>
|
<string name="greeting_title">Enable greeting</string>
|
||||||
<string name="justBeingNice">If you want me to be nice :)</string>
|
<string name="greeting_desc">If you want me to be nice :)</string>
|
||||||
|
|
||||||
<string name="licences">Licences</string>
|
<string name="licences_title">Licences</string>
|
||||||
<string name="whatItTook">What it took to create this app</string>
|
<string name="licences_desc">What it took to create this app</string>
|
||||||
<string name="version">Version Number</string>
|
<string name="version">Version Number</string>
|
||||||
|
|
||||||
<string name="tac">Terms & Conditions</string>
|
<string name="terms_and_conditions_title">Terms & Conditions</string>
|
||||||
<string name="reviewTac">Review this app\'s Terms & Conditions</string>
|
<string name="terms_and_conditions_desc">Review this app\'s Terms & Conditions</string>
|
||||||
<string name="privacy">Privacy Policy</string>
|
<string name="privacy_policy_title">Privacy Policy</string>
|
||||||
<string name="reviewPrivacy">Review this app\'s Privacy Policy</string>
|
<string name="privacy_policy_desc">Review this app\'s Privacy Policy</string>
|
||||||
<string name="information">Information</string>
|
<string name="information">Information</string>
|
||||||
|
|
||||||
<string name="madeBy">Made by Deniz :)</string>
|
<string name="made_by_deniz">Made by Deniz :)</string>
|
||||||
|
|
||||||
<string name="autoRefresh">Refresh on startup</string>
|
<string name="auto_refresh_title">Refresh on startup</string>
|
||||||
<string name="ifSyncNotWorking">In case the background sync doesn\'t work</string>
|
<string name="auto_refresh_desc">In case the background sync doesn\'t work</string>
|
||||||
|
|
||||||
<string name="enterGradeHelpTitle">How to enter your grade</string>
|
<string name="grade_help_dialog_title">How to enter your grade</string>
|
||||||
<string name="enterGradeHelp">Enter your current grade to have it appear in your personal plan and be notified about any information.\n\nNote:\n\nIn junior phase, put the number and letter together, as in \"5a\".\n\nIn E-Phase, separate them by a space, as in \"18 a\".\n\nIn Q1/Q2, only put in the number, as in \"17\".\n\nMultiple grades can only be entered when no courses have been entered.</string>
|
<string name="grade_help_dialog_text">Enter your current grade to have it appear in your personal plan and be notified about any information.\n\nNote:\n\nIn junior phase, put the number and letter together, as in \"5a\".\n\nIn E-Phase, separate them by a space, as in \"18 a\".\n\nIn Q1/Q2, only put in the number, as in \"17\".\n\nMultiple grades can only be entered when no courses have been entered.</string>
|
||||||
<string name="enterCoursesHelpTitle">How to enter your courses</string>
|
<string name="courses_help_dialog_title">How to enter your courses</string>
|
||||||
<string name="enterCoursesHelp">You need to enter the course abbreviation for every course you want in your personal plan and want to be notified about. You can find them on your time table.\n\nHere\'s a few examples:\n\nMathematics in 5th grade (juniors) would be MAT.\n\nAdvanced English in E-Phase (seniors) for the English profile may be ENP1.\n\nBasic Biology in Q1 could be bio1.\n\nIn most cases, entering courses while in junior phase is redundant.\nSeparate multiple courses by spaces, commas are optional.\nCapitalisation is required.</string>
|
<string name="courses_help_dialog_text">You need to enter the course abbreviation for every course you want in your personal plan and want to be notified about. You can find them on your time table.\n\nHere\'s a few examples:\n\nMathematics in 5th grade (juniors) would be MAT.\n\nAdvanced English in E-Phase (seniors) for the English profile may be ENP1.\n\nBasic Biology in Q1 could be bio1.\n\nIn most cases, entering courses while in junior phase is redundant.\nSeparate multiple courses by spaces, commas are optional.\nCapitalisation is required.</string>
|
||||||
<string name="dontTellHim">Don\'t tell him :0</string>
|
<string name="experimental_menu_dialog_title">Experimental Menu</string>
|
||||||
<string name="experimentalMenu">Experimental Menu</string>
|
<string name="diagnostics_dialog_title">Diagnostics Menu</string>
|
||||||
<string name="diagnosticsMenu">Diagnostics Menu</string>
|
<string name="experimental_menu_dialog_text">This menu is currently intended for testing only. Additional features may be added in the future. Feel free to try arbitrary codes.</string>
|
||||||
<string name="menuForTests">This menu is currently intended for testing only. Additional features may be added in the future. Feel free to try arbitrary codes.</string>
|
|
||||||
<string name="apply">Apply</string>
|
<string name="apply">Apply</string>
|
||||||
<string name="invalidCode">Invalid code</string>
|
<string name="invalid_code">Invalid code</string>
|
||||||
<string name="noSubstitutionsForYou">No substitutions for you</string>
|
<string name="no_personal_substitutions">No substitutions for you</string>
|
||||||
|
|
||||||
<string name="customiseColoursTitle">Customise colours</string>
|
<string name="customise_colours_title">Customise colours</string>
|
||||||
<string name="customiseColoursIndividually">Customise every subject individually</string>
|
<string name="customise_colours_desc">Customise every subject individually</string>
|
||||||
|
|
||||||
<string name="courseDeu">German (+ as a second language)</string>
|
<string name="course_deu">German (+ as a second language)</string>
|
||||||
<string name="courseMat">Mathematics</string>
|
<string name="course_mat">Mathematics</string>
|
||||||
<string name="courseEng">English (+ for beginners)</string>
|
<string name="course_eng">English (+ for beginners)</string>
|
||||||
<string name="courseSpo">Physical Education</string>
|
<string name="course_spo">Physical Education</string>
|
||||||
<string name="coursePol">Politics</string>
|
<string name="course_pol">Politics</string>
|
||||||
<string name="courseDar">Theatre</string>
|
<string name="course_dar">Theatre</string>
|
||||||
<string name="coursePhy">Physics</string>
|
<string name="course_phy">Physics</string>
|
||||||
<string name="courseBio">Biology & Natural Sciences</string>
|
<string name="course_bio">Biology & Natural Sciences</string>
|
||||||
<string name="courseChe">Chemistry</string>
|
<string name="course_che">Chemistry</string>
|
||||||
<string name="coursePhi">Philosophy</string>
|
<string name="course_phi">Philosophy</string>
|
||||||
<string name="courseLat">Latin</string>
|
<string name="course_lat">Latin</string>
|
||||||
<string name="courseSpa">Spanish</string>
|
<string name="course_spa">Spanish</string>
|
||||||
<string name="courseFra">French</string>
|
<string name="course_fra">French</string>
|
||||||
<string name="courseInf">Computer Science</string>
|
<string name="course_inf">Computer Science</string>
|
||||||
<string name="courseGes">History</string>
|
<string name="course_ges">History</string>
|
||||||
<string name="courseRel">Religion</string>
|
<string name="course_rel">Religion</string>
|
||||||
<string name="courseGeg">Geography & WUK</string>
|
<string name="course_geg">Geography & WUK</string>
|
||||||
<string name="courseKun">Arts</string>
|
<string name="course_kun">Arts</string>
|
||||||
<string name="courseMus">Music</string>
|
<string name="course_mus">Music</string>
|
||||||
<string name="courseTue">Turkish</string>
|
<string name="course_tue">Turkish</string>
|
||||||
<string name="courseChi">Chinese</string>
|
<string name="course_chi">Chinese</string>
|
||||||
<string name="courseGll">GLL</string>
|
<string name="course_gll">GLL</string>
|
||||||
<string name="courseWat">WAT</string>
|
<string name="course_wat">WAT</string>
|
||||||
<string name="courseFor">Special Education</string>
|
<string name="course_foer">Special Education</string>
|
||||||
<string name="courseWp">WP & "Methodenstunde"</string>
|
<string name="course_wp">WP & "Methodenstunde"</string>
|
||||||
|
|
||||||
<string name="chromeCompatibleNotFound">No Chrome-compatible browser found</string>
|
<string name="chrome_not_found">No Chrome-compatible browser found</string>
|
||||||
<string name="youtubeNotFound">YouTube app not found</string>
|
<string name="youtube_not_found">YouTube app not found</string>
|
||||||
<string name="lastUpdated">Last updated:</string>
|
<string name="last_updated">Last updated:</string>
|
||||||
<string name="yourPlan">Your Plan</string>
|
<string name="yourPlan">Your Plan</string>
|
||||||
|
|
||||||
<string-array name="greetingsMorning">
|
<string-array name="greetings_morning">
|
||||||
<item>Hello, %s!</item>
|
<item>Hello, %s!</item>
|
||||||
<item>Good morning, %s!</item>
|
<item>Good morning, %s!</item>
|
||||||
<item>Have a nice day, %s.</item>
|
<item>Have a nice day, %s.</item>
|
||||||
@@ -111,7 +110,7 @@
|
|||||||
<item>Nice to see you, %s.</item>
|
<item>Nice to see you, %s.</item>
|
||||||
<item>How\'ve you been, %s?</item>
|
<item>How\'ve you been, %s?</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="greetingsNoon">
|
<string-array name="greetings_noon">
|
||||||
<item>Hello, %s!</item>
|
<item>Hello, %s!</item>
|
||||||
<item>Good day, %s!</item>
|
<item>Good day, %s!</item>
|
||||||
<item>Have a nice day, %s.</item>
|
<item>Have a nice day, %s.</item>
|
||||||
@@ -122,7 +121,7 @@
|
|||||||
<item>Nice to see you, %s.</item>
|
<item>Nice to see you, %s.</item>
|
||||||
<item>Enjoy your day, %s!</item>
|
<item>Enjoy your day, %s!</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="greetingsEvening">
|
<string-array name="greetings_evening">
|
||||||
<item>Hello, %s!</item>
|
<item>Hello, %s!</item>
|
||||||
<item>Good evening, %s!</item>
|
<item>Good evening, %s!</item>
|
||||||
<item>Enjoy your evening, %s.</item>
|
<item>Enjoy your evening, %s.</item>
|
||||||
@@ -131,44 +130,44 @@
|
|||||||
<item>Hi %s!</item>
|
<item>Hi %s!</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="setRingtone">Customise notification ringtone</string>
|
<string name="pick_ringtone_title">Customise notification ringtone</string>
|
||||||
<string name="setRingtone2">Currently: %s</string>
|
<string name="pick_ringtone_desc">Currently: %s</string>
|
||||||
<string name="pickRingtone">Pick a notification ringtone</string>
|
<string name="pick_ringtone_dialog_title">Pick a notification ringtone</string>
|
||||||
<string name="deviceSettingsRedirect">Redirects to device settings</string>
|
<string name="pick_ringtone_desc_o">Redirects to device settings</string>
|
||||||
<string name="defaultRingtone">Default</string>
|
<string name="default_ringtone">Default</string>
|
||||||
<string name="permissionDenied">Please enable storage permissions</string>
|
<string name="permission_denied">Please enable storage permissions</string>
|
||||||
<string name="success">Success</string>
|
<string name="success">Success</string>
|
||||||
<string name="notReceivingNotifications1">Not receiving notifications?</string>
|
<string name="no_notifications_title">Not receiving notifications?</string>
|
||||||
<string name="notReceivingNotifications2">Click to see why</string>
|
<string name="no_notifications_desc">Click to see why</string>
|
||||||
<string name="notReceivingNotificationsHelp">Note: on some Chinese-branded devices, there may not be a solution to this problem. You\'re welcome to try the tips provided.\n\nBattery saver functions often cause notifications to be delayed or not be received at all. Try setting any battery saving options to their default setting.\n\nSome devices restrict background usage of apps. Please go to your device app settings, select the app and check for a toggle named \"Restrict background usage\" (or similar) and verify that the setting is turned off.\n\nYou\'re also welcome to ask me for help.</string>
|
<string name="no_notifications_dialog_text">Note: on some Chinese-branded devices, there may not be a solution to this problem. You\'re welcome to try the tips provided.\n\nBattery saver functions often cause notifications to be delayed or not be received at all. Try setting any battery saving options to their default setting.\n\nSome devices restrict background usage of apps. Please go to your device app settings, select the app and check for a toggle named \"Restrict background usage\" (or similar) and verify that the setting is turned off.\n\nYou\'re also welcome to ask me for help.</string>
|
||||||
<string name="appTheme">App theme</string>
|
<string name="app_theme">App theme</string>
|
||||||
<string-array name="themes">
|
<string-array name="themes">
|
||||||
<item>Light</item>
|
<item>Light</item>
|
||||||
<item>Dark</item>
|
<item>Dark</item>
|
||||||
<item>Follow system</item>
|
<item>Follow system</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="themesPreQ">
|
<string-array name="themes_pre_q">
|
||||||
<item>Light</item>
|
<item>Light</item>
|
||||||
<item>Dark</item>
|
<item>Dark</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="forcedRefresh">Forced refresh successful</string>
|
<string name="force_refresh_successful">Forced refresh successful</string>
|
||||||
<string name="forcedRefreshTimes">Cleared refresh times</string>
|
<string name="force_refresh_cleared_times">Cleared refresh times</string>
|
||||||
<string name="forceRefreshTxt">Force a refresh</string>
|
<string name="force_refresh_title">Force a refresh</string>
|
||||||
<string name="forceRefreshTxt2">Use this if you can\'t see the plan or food menu</string>
|
<string name="force_refresh_desc">Use this if you can\'t see the plan or food menu</string>
|
||||||
|
|
||||||
<string name="noSPlan">\' Plan</string>
|
<string name="no_s_plan">\' Plan</string>
|
||||||
<string name="SPlan">\'s Plan</string>
|
<string name="s_plan">\'s Plan</string>
|
||||||
|
|
||||||
<plurals name="moreMessages">
|
<plurals name="notification_more_messages">
|
||||||
<item quantity="one">,\nand %d more message</item>
|
<item quantity="one">,\nand %d more message</item>
|
||||||
<item quantity="other">,\nand %d more messages</item>
|
<item quantity="other">,\nand %d more messages</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="login_required">Please click the button below to enter your username and password to verify that you\'re occupied at the Alexander-von-Humboldt-Gymnasium.\n\nThis login is only required once and your information will not be shared with anybody.</string>
|
<string name="login_required">Please click the button below to enter your username and password to verify that you\'re occupied at the Alexander-von-Humboldt-Gymnasium.\n\nThis login is only required once and your information will not be shared with anybody.\n\nIf you have logged in successfully, but the setup does not continue, please go back and try again.</string>
|
||||||
<string name="hello">Hello there!</string>
|
<string name="hello">Hello there!</string>
|
||||||
<string name="username">Your username</string>
|
<string name="username">Your username</string>
|
||||||
<string name="password">Your password</string>
|
<string name="password">Your password</string>
|
||||||
<string name="login">Log in</string>
|
<string name="login">Log in</string>
|
||||||
<string name="logging_in">Logging in…</string>
|
<string name="logging_in">Logging in…</string>
|
||||||
<string name="load_page_again">Load login page again</string>
|
<string name="load_page_again">Load login page again</string>
|
||||||
<string name="logged_in">You have been logged in!</string>
|
<string name="logged_in">Login successful!</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user