Archived
New fragments can now be accessed via an experimental setting. They tell the user via snack message that their functionality is not yet implemented
This commit is contained in:
@@ -39,6 +39,13 @@ class MainActivity : FragmentActivity() {
|
|||||||
binding.navHostFragmentContentMain.getFragment<NavHostFragment>().findNavController()
|
binding.navHostFragmentContentMain.getFragment<NavHostFragment>().findNavController()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Check whether the user has enabled beta screens
|
||||||
|
val showBetaScreens = viewModel.preferenceBetaScreensEnabled
|
||||||
|
|
||||||
|
// Set the visibility for the navigation bar items for beta screens accordingly
|
||||||
|
binding.navView.menu.findItem(R.id.exam_overview).isVisible = showBetaScreens
|
||||||
|
binding.navView.menu.findItem(R.id.room_finder).isVisible = showBetaScreens
|
||||||
|
|
||||||
// Set up navigation component
|
// Set up navigation component
|
||||||
setNavigationGraph()
|
setNavigationGraph()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -390,6 +390,16 @@ class AppRepository(app: Application) {
|
|||||||
setPreference(SettingsPreferences.EXPERIMENTAL_ENABLED, newValue)
|
setPreference(SettingsPreferences.EXPERIMENTAL_ENABLED, newValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This value determines whether beta screens should be shown.
|
||||||
|
*/
|
||||||
|
fun getPreferenceBetaScreensEnabled(): Boolean = getBooleanPreference(
|
||||||
|
SettingsPreferences.BETA_SCREENS_ENABLED,
|
||||||
|
)
|
||||||
|
fun setPreferenceBetaScreensEnabled(newValue: Boolean) {
|
||||||
|
setPreference(SettingsPreferences.BETA_SCREENS_ENABLED, newValue)
|
||||||
|
}
|
||||||
|
|
||||||
// --- private preference handlers preferences --- //
|
// --- private preference handlers preferences --- //
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
package com.denizk0461.weserplaner.fragment
|
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.fragment.app.viewModels
|
|
||||||
import com.denizk0461.weserplaner.databinding.FragmentExamOverviewBinding
|
|
||||||
import com.denizk0461.weserplaner.viewmodel.ExamOverviewViewModel
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fragment that shows the user an overview of their exams.
|
|
||||||
*/
|
|
||||||
class ExamOverviewFragment : AppFragment<FragmentExamOverviewBinding>() {
|
|
||||||
|
|
||||||
// View model reference for providing access to the database
|
|
||||||
private val viewModel: ExamOverviewViewModel by viewModels()
|
|
||||||
|
|
||||||
// Instantiate the view binding
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
|
||||||
_binding = FragmentExamOverviewBinding.inflate(inflater, container, false)
|
|
||||||
return binding.root
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,6 +5,8 @@ import android.view.LayoutInflater
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
|
import com.denizk0461.weserplaner.R
|
||||||
|
import com.denizk0461.weserplaner.data.showSnackBar
|
||||||
import com.denizk0461.weserplaner.databinding.FragmentRoomFinderBinding
|
import com.denizk0461.weserplaner.databinding.FragmentRoomFinderBinding
|
||||||
import com.denizk0461.weserplaner.viewmodel.RoomFinderViewModel
|
import com.denizk0461.weserplaner.viewmodel.RoomFinderViewModel
|
||||||
|
|
||||||
@@ -21,4 +23,14 @@ class RoomFinderFragment : AppFragment<FragmentRoomFinderBinding>() {
|
|||||||
_binding = FragmentRoomFinderBinding.inflate(inflater, container, false)
|
_binding = FragmentRoomFinderBinding.inflate(inflater, container, false)
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
|
// Tell the user that this fragment's functionality is not yet implemented
|
||||||
|
context.theme.showSnackBar(
|
||||||
|
binding.coordinatorLayout,
|
||||||
|
getString(R.string.room_finder_snack_unimplemented),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -322,6 +322,14 @@ class SettingsFragment : AppFragment<FragmentSettingsBinding>() {
|
|||||||
.format(Date(BuildConfig.BUILD_TIME_MILLIS))
|
.format(Date(BuildConfig.BUILD_TIME_MILLIS))
|
||||||
}"
|
}"
|
||||||
|
|
||||||
|
// Set up switch for showing beta screens
|
||||||
|
binding.switchBetaNav.apply {
|
||||||
|
isChecked = viewModel.preferenceBetaScreensEnabled
|
||||||
|
setOnCheckedChangeListener { _, newValue ->
|
||||||
|
viewModel.preferenceBetaScreensEnabled = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
binding.buttonDevCodes.setOnClickListener {
|
binding.buttonDevCodes.setOnClickListener {
|
||||||
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||||
imm.hideSoftInputFromWindow(view.windowToken, 0)
|
imm.hideSoftInputFromWindow(view.windowToken, 0)
|
||||||
@@ -418,7 +426,8 @@ class SettingsFragment : AppFragment<FragmentSettingsBinding>() {
|
|||||||
/**
|
/**
|
||||||
* Decodes Base64 to a regular string.
|
* Decodes Base64 to a regular string.
|
||||||
*
|
*
|
||||||
* @return the decoded string
|
* @receiver encoded string to decode
|
||||||
|
* @return decoded string
|
||||||
*/
|
*/
|
||||||
private val String.d64: String get() = String(
|
private val String.d64: String get() = String(
|
||||||
Base64.decode(this, Base64.DEFAULT),
|
Base64.decode(this, Base64.DEFAULT),
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.denizk0461.weserplaner.fragment
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.fragment.app.viewModels
|
||||||
|
import com.denizk0461.weserplaner.R
|
||||||
|
import com.denizk0461.weserplaner.data.showSnackBar
|
||||||
|
import com.denizk0461.weserplaner.databinding.FragmentTaskOverviewBinding
|
||||||
|
import com.denizk0461.weserplaner.viewmodel.TaskOverviewViewModel
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fragment that shows the user an overview of their tasks and exams.
|
||||||
|
*/
|
||||||
|
class TaskOverviewFragment : AppFragment<FragmentTaskOverviewBinding>() {
|
||||||
|
|
||||||
|
// View model reference for providing access to the database
|
||||||
|
private val viewModel: TaskOverviewViewModel by viewModels()
|
||||||
|
|
||||||
|
// Instantiate the view binding
|
||||||
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||||
|
_binding = FragmentTaskOverviewBinding.inflate(inflater, container, false)
|
||||||
|
return binding.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
|
// Tell the user that this fragment's functionality is not yet implemented
|
||||||
|
context.theme.showSnackBar(
|
||||||
|
binding.coordinatorLayout,
|
||||||
|
getString(R.string.task_overview_snack_unimplemented),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -68,5 +68,10 @@ enum class SettingsPreferences(val key: String) {
|
|||||||
* Whether the user has enabled experimental settings.
|
* Whether the user has enabled experimental settings.
|
||||||
*/
|
*/
|
||||||
EXPERIMENTAL_ENABLED("experimental_enabled"),
|
EXPERIMENTAL_ENABLED("experimental_enabled"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether beta screens should be shown.
|
||||||
|
*/
|
||||||
|
BETA_SCREENS_ENABLED("beta_screens"),
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package com.denizk0461.weserplaner.viewmodel
|
|
||||||
|
|
||||||
import android.app.Application
|
|
||||||
|
|
||||||
/**
|
|
||||||
* View model class for [com.denizk0461.weserplaner.fragment.ExamOverviewFragment].
|
|
||||||
*/
|
|
||||||
class ExamOverviewViewModel(application: Application) : AppViewModel(application) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -15,4 +15,10 @@ class MainViewModel(application: Application) : AppViewModel(application) {
|
|||||||
*/
|
*/
|
||||||
val preferenceLaunchFragment: Int
|
val preferenceLaunchFragment: Int
|
||||||
get() = repo.getPreferenceLaunchFragment()
|
get() = repo.getPreferenceLaunchFragment()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This value determines whether the user has enabled experimental settings.
|
||||||
|
*/
|
||||||
|
val preferenceBetaScreensEnabled: Boolean
|
||||||
|
get() = repo.getPreferenceBetaScreensEnabled()
|
||||||
}
|
}
|
||||||
@@ -74,6 +74,13 @@ class SettingsViewModel(app: Application) : AppViewModel(app) {
|
|||||||
get() = repo.getPreferenceExperimentalSettingsEnabled()
|
get() = repo.getPreferenceExperimentalSettingsEnabled()
|
||||||
set(newValue) { repo.setPreferenceExperimentalSettingsEnabled(newValue) }
|
set(newValue) { repo.setPreferenceExperimentalSettingsEnabled(newValue) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This value determines whether beta screens should be shown.
|
||||||
|
*/
|
||||||
|
var preferenceBetaScreensEnabled: Boolean
|
||||||
|
get() = repo.getPreferenceBetaScreensEnabled()
|
||||||
|
set(newValue) { repo.setPreferenceBetaScreensEnabled(newValue) }
|
||||||
|
|
||||||
// --- functions for dev codes --- //
|
// --- functions for dev codes --- //
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.denizk0461.weserplaner.viewmodel
|
||||||
|
|
||||||
|
import android.app.Application
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View model class for [com.denizk0461.weserplaner.fragment.TaskOverviewFragment].
|
||||||
|
*/
|
||||||
|
class TaskOverviewViewModel(application: Application) : AppViewModel(application) {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,8c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM20.94,11c-0.46,-4.17 -3.77,-7.48 -7.94,-7.94L13,1h-2v2.06C6.83,3.52 3.52,6.83 3.06,11L1,11v2h2.06c0.46,4.17 3.77,7.48 7.94,7.94L11,23h2v-2.06c4.17,-0.46 7.48,-3.77 7.94,-7.94L23,13v-2h-2.06zM12,19c-3.87,0 -7,-3.13 -7,-7s3.13,-7 7,-7 7,3.13 7,7 -3.13,7 -7,7z"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M22,5.18L10.59,16.6l-4.24,-4.24l1.41,-1.41l2.83,2.83l10,-10L22,5.18zM19.79,10.22C19.92,10.79 20,11.39 20,12c0,4.42 -3.58,8 -8,8s-8,-3.58 -8,-8c0,-4.42 3.58,-8 8,-8c1.58,0 3.04,0.46 4.28,1.25l1.44,-1.44C16.1,2.67 14.13,2 12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10s10,-4.48 10,-10c0,-1.19 -0.22,-2.33 -0.6,-3.39L19.79,10.22z"/>
|
||||||
|
</vector>
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
@@ -1,6 +1,31 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:context=".fragment.RoomFinderFragment"
|
||||||
|
android:id="@+id/coordinator_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fitsSystemWindows="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/app_title_bar"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:fontFamily="@font/lato_blackitalic"
|
||||||
|
android:text="@string/title_room_finder"
|
||||||
|
app:layout_scrollFlags="scroll"
|
||||||
|
android:textSize="28sp"/>
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
@@ -32,6 +32,9 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
|
android:paddingBottom="52dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:scrollbarStyle="outsideOverlay"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
@@ -684,6 +687,49 @@
|
|||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<!-- Show beta nav icons -->
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/layout_beta_nav"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="8dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/switch_beta_nav"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="@font/lato_bolditalic"
|
||||||
|
android:text="@string/settings_beta_nav_title"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/settings_beta_nav_subtitle"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<com.google.android.material.materialswitch.MaterialSwitch
|
||||||
|
android:id="@+id/switch_beta_nav"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<!-- Dev codes -->
|
<!-- Dev codes -->
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -722,7 +768,6 @@
|
|||||||
android:id="@+id/input_dev_code"
|
android:id="@+id/input_dev_code"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center"
|
|
||||||
android:fontFamily="@font/ibm_regular"
|
android:fontFamily="@font/ibm_regular"
|
||||||
android:inputType="textNoSuggestions"/>
|
android:inputType="textNoSuggestions"/>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:context=".fragment.TaskOverviewFragment"
|
||||||
|
android:id="@+id/coordinator_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fitsSystemWindows="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/app_title_bar"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:fontFamily="@font/lato_blackitalic"
|
||||||
|
android:text="@string/title_exam_overview"
|
||||||
|
app:layout_scrollFlags="scroll"
|
||||||
|
android:textSize="28sp"/>
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
@@ -5,10 +5,20 @@
|
|||||||
android:icon="@drawable/design"
|
android:icon="@drawable/design"
|
||||||
android:title="@string/nav_schedule"
|
android:title="@string/nav_schedule"
|
||||||
android:enabled="true"/>
|
android:enabled="true"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/exam_overview"
|
||||||
|
android:icon="@drawable/task"
|
||||||
|
android:title="@string/nav_exam_overview"
|
||||||
|
android:enabled="true"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/canteen"
|
android:id="@+id/canteen"
|
||||||
android:icon="@drawable/restaurant"
|
android:icon="@drawable/restaurant"
|
||||||
android:title="@string/nav_food"
|
android:title="@string/nav_canteen"
|
||||||
|
android:enabled="true"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/room_finder"
|
||||||
|
android:icon="@drawable/location"
|
||||||
|
android:title="@string/nav_room_finder"
|
||||||
android:enabled="true"/>
|
android:enabled="true"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/settings"
|
android:id="@+id/settings"
|
||||||
|
|||||||
@@ -10,10 +10,21 @@
|
|||||||
android:name="com.denizk0461.weserplaner.fragment.EventFragment"
|
android:name="com.denizk0461.weserplaner.fragment.EventFragment"
|
||||||
android:label="EventFragment"
|
android:label="EventFragment"
|
||||||
tools:layout="@layout/fragment_event"/>
|
tools:layout="@layout/fragment_event"/>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/exam_overview"
|
||||||
|
android:name="com.denizk0461.weserplaner.fragment.TaskOverviewFragment"
|
||||||
|
android:label="ExamOverviewFragment"
|
||||||
|
tools:layout="@layout/fragment_task_overview"/>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/canteen"
|
android:id="@+id/canteen"
|
||||||
android:name="com.denizk0461.weserplaner.fragment.CanteenFragment"
|
android:name="com.denizk0461.weserplaner.fragment.CanteenFragment"
|
||||||
android:label="CanteenFragment"/>
|
android:label="CanteenFragment"
|
||||||
|
tools:layout="@layout/fragment_canteen"/>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/room_finder"
|
||||||
|
android:name="com.denizk0461.weserplaner.fragment.RoomFinderFragment"
|
||||||
|
android:label="RoomFinderFragment"
|
||||||
|
tools:layout="@layout/fragment_room_finder"/>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/settings"
|
android:id="@+id/settings"
|
||||||
android:name="com.denizk0461.weserplaner.fragment.SettingsFragment"
|
android:name="com.denizk0461.weserplaner.fragment.SettingsFragment"
|
||||||
|
|||||||
@@ -73,6 +73,8 @@
|
|||||||
<string name="sheet_schedule_update_time_dialog_start_hint">Startzeit der Veranstaltung</string>
|
<string name="sheet_schedule_update_time_dialog_start_hint">Startzeit der Veranstaltung</string>
|
||||||
<string name="sheet_schedule_update_time_dialog_end_hint">Schlusszeit der Veranstaltung</string>
|
<string name="sheet_schedule_update_time_dialog_end_hint">Schlusszeit der Veranstaltung</string>
|
||||||
|
|
||||||
|
<string name="task_overview_snack_unimplemented">Aufgaben sind noch nicht implementiert!</string>
|
||||||
|
|
||||||
<string name="canteen_button_opening_hours_hint">Siehe Öffnungszeiten der Mensa</string>
|
<string name="canteen_button_opening_hours_hint">Siehe Öffnungszeiten der Mensa</string>
|
||||||
<string name="canteen_button_notifications_hint">Siehe Neuigkeiten der Mensa</string>
|
<string name="canteen_button_notifications_hint">Siehe Neuigkeiten der Mensa</string>
|
||||||
|
|
||||||
@@ -85,18 +87,23 @@
|
|||||||
<string name="canteen_fab_refresh_content_desc">Aktualisiere Angebote</string>
|
<string name="canteen_fab_refresh_content_desc">Aktualisiere Angebote</string>
|
||||||
<string name="canteen_fab_refresh_text">Aktualisieren</string>
|
<string name="canteen_fab_refresh_text">Aktualisieren</string>
|
||||||
|
|
||||||
<!-- TODO replace 'this canteen' with %s -->
|
|
||||||
<string name="text_sheet_opening_hours_title">%s – Öffnungszeiten</string>
|
<string name="text_sheet_opening_hours_title">%s – Öffnungszeiten</string>
|
||||||
<string name="text_sheet_opening_hours_empty">Die Öffnungszeiten können nicht angezeigt werden.</string>
|
<string name="text_sheet_opening_hours_empty">Die Öffnungszeiten können nicht angezeigt werden.</string>
|
||||||
<string name="text_sheet_news_title">%s – Neuigkeiten</string>
|
<string name="text_sheet_news_title">%s – Neuigkeiten</string>
|
||||||
<string name="text_sheet_news_empty">Es sind keine Neuigkeiten verfügbar.</string>
|
<string name="text_sheet_news_empty">Es sind keine Neuigkeiten verfügbar.</string>
|
||||||
|
|
||||||
|
<string name="room_finder_snack_unimplemented">Der Raumfinder ist noch nicht implementiert!</string>
|
||||||
|
|
||||||
<string name="sheet_licences_header">Lizenzen</string>
|
<string name="sheet_licences_header">Lizenzen</string>
|
||||||
|
|
||||||
<string name="title_schedule">Dein Stundenplan</string>
|
<string name="title_schedule">Dein Stundenplan</string>
|
||||||
<string name="title_schedule_short">Stundenplan</string>
|
<string name="title_schedule_short">Stundenplan</string>
|
||||||
|
<string name="title_exam_overview">Aufgaben & Prüfungen</string>
|
||||||
|
<string name="title_exam_overview_short">Aufgaben</string>
|
||||||
<string name="title_canteen">Mensenangebote</string>
|
<string name="title_canteen">Mensenangebote</string>
|
||||||
<string name="title_canteen_short">Mensa</string>
|
<string name="title_canteen_short">Mensa</string>
|
||||||
|
<string name="title_room_finder">Raumfinder</string>
|
||||||
|
<string name="title_room_finder_short">Räume</string>
|
||||||
<string name="title_canteen_template">%s – Angebote</string>
|
<string name="title_canteen_template">%s – Angebote</string>
|
||||||
<string name="title_settings">App-Einstellungen</string>
|
<string name="title_settings">App-Einstellungen</string>
|
||||||
|
|
||||||
@@ -178,7 +185,9 @@
|
|||||||
<string name="canteen_page_allergen_sheet_error">Beim Laden dieses Angebots ist ein Fehler aufgetreten.</string>
|
<string name="canteen_page_allergen_sheet_error">Beim Laden dieses Angebots ist ein Fehler aufgetreten.</string>
|
||||||
|
|
||||||
<string name="nav_schedule">Stundenplan</string>
|
<string name="nav_schedule">Stundenplan</string>
|
||||||
<string name="nav_food">Mensa</string>
|
<string name="nav_exam_overview">Aufgaben</string>
|
||||||
|
<string name="nav_canteen">Mensa</string>
|
||||||
|
<string name="nav_room_finder">Raumfinder</string>
|
||||||
<string name="nav_settings">Einstellungen</string>
|
<string name="nav_settings">Einstellungen</string>
|
||||||
|
|
||||||
<string name="settings_general">Allgemein</string>
|
<string name="settings_general">Allgemein</string>
|
||||||
@@ -233,5 +242,17 @@
|
|||||||
|
|
||||||
<string name="settings_app_version">App-Version</string>
|
<string name="settings_app_version">App-Version</string>
|
||||||
|
|
||||||
|
<string name="settings_hide_experiments_title">Verstecke experimentelle Einstellungen</string>
|
||||||
|
<string name="settings_hide_experiments_subtitle">Rufe sie wieder über den Lizenzen-Knopf auf</string>
|
||||||
|
|
||||||
|
<string name="settings_build_time">Gradle Build-Code & Zeit</string>
|
||||||
|
|
||||||
|
<string name="settings_beta_nav_title">Zeige Beta-Bildschirme</string>
|
||||||
|
<string name="settings_beta_nav_subtitle">Erfordert einen App-Neustart</string>
|
||||||
|
|
||||||
|
<string name="settings_dev_codes_title">Entwicklercodes</string>
|
||||||
|
<string name="settings_dev_codes_hint">6 Zeichen</string>
|
||||||
|
<string name="settings_dev_codes_invalid">Dieser Code konnte nicht gefunden werden.</string>
|
||||||
|
|
||||||
<string name="settings_app_version_15">klick weiter</string>
|
<string name="settings_app_version_15">klick weiter</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -75,6 +75,8 @@
|
|||||||
<string name="sheet_schedule_update_time_dialog_start_hint">Event start time</string>
|
<string name="sheet_schedule_update_time_dialog_start_hint">Event start time</string>
|
||||||
<string name="sheet_schedule_update_time_dialog_end_hint">Event end time</string>
|
<string name="sheet_schedule_update_time_dialog_end_hint">Event end time</string>
|
||||||
|
|
||||||
|
<string name="task_overview_snack_unimplemented">Tasks are not yet implemented!</string>
|
||||||
|
|
||||||
<string name="canteen_button_opening_hours_hint">View canteen opening hours</string>
|
<string name="canteen_button_opening_hours_hint">View canteen opening hours</string>
|
||||||
<string name="canteen_button_notifications_hint">View canteen notifications</string>
|
<string name="canteen_button_notifications_hint">View canteen notifications</string>
|
||||||
|
|
||||||
@@ -92,13 +94,19 @@
|
|||||||
<string name="text_sheet_news_title">%s – news</string>
|
<string name="text_sheet_news_title">%s – news</string>
|
||||||
<string name="text_sheet_news_empty">No news are available.</string>
|
<string name="text_sheet_news_empty">No news are available.</string>
|
||||||
|
|
||||||
|
<string name="room_finder_snack_unimplemented">Room finder is not yet implemented!</string>
|
||||||
|
|
||||||
<string name="sheet_licences_header">Licences</string>
|
<string name="sheet_licences_header">Licences</string>
|
||||||
<string name="sheet_licences_content" translatable="false">Android, Material Design Resources © 2014 – %1$s Google, licenced under the Apache 2.0 License.\nhttps://developer.android.com\nhttps://material.io\n\nSeveral icons © 2013 – %1$s Flaticon, licenced under the Flaticon Basic Free License.\nhttps://www.flaticon.com\n\nLato © 2010 – %1$s Łukasz Dziedzic, licenced under the SIL Open Font License.\nhttps://fonts.google.com/specimen/Lato\n\njsoup HTML parser © 2009 – %1$s Jonathan Hedley, licenced under the MIT License.\nhttps://jsoup.org\n\nApp developed by Deniz Düzgören.\ndenizk0461@gmail.com\ndeniz7@uni-bremen.de</string>
|
<string name="sheet_licences_content" translatable="false">Android, Material Design Resources © 2014 – %1$s Google, licenced under the Apache 2.0 License.\nhttps://developer.android.com\nhttps://material.io\n\nSeveral icons © 2013 – %1$s Flaticon, licenced under the Flaticon Basic Free License.\nhttps://www.flaticon.com\n\nLato © 2010 – %1$s Łukasz Dziedzic, licenced under the SIL Open Font License.\nhttps://fonts.google.com/specimen/Lato\n\njsoup HTML parser © 2009 – %1$s Jonathan Hedley, licenced under the MIT License.\nhttps://jsoup.org\n\nApp developed by Deniz Düzgören.\ndenizk0461@gmail.com\ndeniz7@uni-bremen.de</string>
|
||||||
|
|
||||||
<string name="title_schedule">Your Schedule</string>
|
<string name="title_schedule">Your Schedule</string>
|
||||||
<string name="title_schedule_short">Schedule</string>
|
<string name="title_schedule_short">Schedule</string>
|
||||||
|
<string name="title_exam_overview">Tasks & Exams</string>
|
||||||
|
<string name="title_exam_overview_short">Tasks</string>
|
||||||
<string name="title_canteen">Canteen Offers</string>
|
<string name="title_canteen">Canteen Offers</string>
|
||||||
<string name="title_canteen_short">Canteen</string>
|
<string name="title_canteen_short">Canteen</string>
|
||||||
|
<string name="title_room_finder">Room Finder</string>
|
||||||
|
<string name="title_room_finder_short">Rooms</string>
|
||||||
<string name="title_canteen_template">%s – Offers</string>
|
<string name="title_canteen_template">%s – Offers</string>
|
||||||
<string name="title_settings">App Settings</string>
|
<string name="title_settings">App Settings</string>
|
||||||
|
|
||||||
@@ -182,7 +190,9 @@
|
|||||||
<string name="canteen_page_allergen_sheet_error">An error occurred while trying to retrieve this offer.</string>
|
<string name="canteen_page_allergen_sheet_error">An error occurred while trying to retrieve this offer.</string>
|
||||||
|
|
||||||
<string name="nav_schedule">Schedule</string>
|
<string name="nav_schedule">Schedule</string>
|
||||||
<string name="nav_food">Canteens</string>
|
<string name="nav_exam_overview">Tasks</string>
|
||||||
|
<string name="nav_canteen">Canteens</string>
|
||||||
|
<string name="nav_room_finder">Room Finder</string>
|
||||||
<string name="nav_settings">Settings</string>
|
<string name="nav_settings">Settings</string>
|
||||||
|
|
||||||
<string name="settings_general">General</string>
|
<string name="settings_general">General</string>
|
||||||
@@ -241,15 +251,18 @@
|
|||||||
|
|
||||||
<string name="settings_app_version">App Version</string>
|
<string name="settings_app_version">App Version</string>
|
||||||
|
|
||||||
<string name="settings_hide_experiments_title" translatable="false">Hide experimental settings</string>
|
<string name="settings_hide_experiments_title">Hide experimental settings</string>
|
||||||
<string name="settings_hide_experiments_subtitle" translatable="false">Show them again via licences button</string>
|
<string name="settings_hide_experiments_subtitle">Show them again via licences button</string>
|
||||||
|
|
||||||
<string name="settings_build_time" translatable="false">Gradle build code & time</string>
|
<string name="settings_build_time">Gradle build code & time</string>
|
||||||
|
|
||||||
<string name="settings_dev_codes_title" translatable="false">Development codes</string>
|
<string name="settings_beta_nav_title">Show beta screens</string>
|
||||||
<string name="settings_dev_codes_hint" translatable="false">6 chars</string>
|
<string name="settings_beta_nav_subtitle">Requires an app restart</string>
|
||||||
|
|
||||||
|
<string name="settings_dev_codes_title">Development codes</string>
|
||||||
|
<string name="settings_dev_codes_hint">6 chars</string>
|
||||||
<string name="settings_dev_codes_button" translatable="false">→</string>
|
<string name="settings_dev_codes_button" translatable="false">→</string>
|
||||||
<string name="settings_dev_codes_invalid" translatable="false">This code could not be found.</string>
|
<string name="settings_dev_codes_invalid">This code could not be found.</string>
|
||||||
|
|
||||||
<string name="settings_app_version_15">keep clicking</string>
|
<string name="settings_app_version_15">keep clicking</string>
|
||||||
<string name="settings_app_version_20" translatable="false">^_^</string>
|
<string name="settings_app_version_20" translatable="false">^_^</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user