Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Hübner, Jan-Ole
LeberTRAN
Commits
84dd04e0
Commit
84dd04e0
authored
Nov 11, 2021
by
Cedric Pump
Browse files
- added Navbar Default App
parent
562f9152
Changes
58
Hide whitespace changes
Inline
Side-by-side
.gitignore
0 → 100644
View file @
84dd04e0
Android/lebertran/.idea/
Android/lebertran/.gitignore
0 → 100644
View file @
84dd04e0
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
Android/lebertran/app/.gitignore
0 → 100644
View file @
84dd04e0
/build
\ No newline at end of file
Android/lebertran/app/build.gradle
0 → 100644
View file @
84dd04e0
plugins
{
id
'com.android.application'
id
'kotlin-android'
}
android
{
compileSdk
30
defaultConfig
{
applicationId
"de.thluebeck.lebertran"
minSdk
21
targetSdk
30
versionCode
1
versionName
"1.0"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
}
buildTypes
{
release
{
minifyEnabled
false
proguardFiles
getDefaultProguardFile
(
'proguard-android-optimize.txt'
),
'proguard-rules.pro'
}
}
compileOptions
{
sourceCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
}
kotlinOptions
{
jvmTarget
=
'1.8'
}
buildFeatures
{
viewBinding
true
}
}
dependencies
{
implementation
'androidx.core:core-ktx:1.7.0'
implementation
'androidx.appcompat:appcompat:1.3.1'
implementation
'com.google.android.material:material:1.4.0'
implementation
'androidx.constraintlayout:constraintlayout:2.1.1'
implementation
'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation
'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation
'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation
'androidx.navigation:navigation-ui-ktx:2.3.5'
testImplementation
'junit:junit:4.+'
androidTestImplementation
'androidx.test.ext:junit:1.1.3'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.4.0'
}
\ No newline at end of file
Android/lebertran/app/proguard-rules.pro
0 → 100644
View file @
84dd04e0
# Add project specific ProGuard rules here.
#
You
can
control
the
set
of
applied
configuration
files
using
the
#
proguardFiles
setting
in
build
.
gradle
.
#
#
For
more
details
,
see
#
http
://
developer
.
android
.
com
/
guide
/
developing
/
tools
/
proguard
.
html
#
If
your
project
uses
WebView
with
JS
,
uncomment
the
following
#
and
specify
the
fully
qualified
class
name
to
the
JavaScript
interface
#
class
:
#-
keepclassmembers
class
fqcn
.
of
.
javascript
.
interface
.
for
.
webview
{
#
public
*
;
#
}
#
Uncomment
this
to
preserve
the
line
number
information
for
#
debugging
stack
traces
.
#-
keepattributes
SourceFile
,
LineNumberTable
#
If
you
keep
the
line
number
information
,
uncomment
this
to
#
hide
the
original
source
file
name
.
#-
renamesourcefileattribute
SourceFile
\ No newline at end of file
Android/lebertran/app/src/androidTest/java/de/thluebeck/lebertran/ExampleInstrumentedTest.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran
import
androidx.test.platform.app.InstrumentationRegistry
import
androidx.test.ext.junit.runners.AndroidJUnit4
import
org.junit.Test
import
org.junit.runner.RunWith
import
org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith
(
AndroidJUnit4
::
class
)
class
ExampleInstrumentedTest
{
@Test
fun
useAppContext
()
{
// Context of the app under test.
val
appContext
=
InstrumentationRegistry
.
getInstrumentation
().
targetContext
assertEquals
(
"de.thluebeck.lebertran"
,
appContext
.
packageName
)
}
}
\ No newline at end of file
Android/lebertran/app/src/main/AndroidManifest.xml
0 → 100644
View file @
84dd04e0
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"de.thluebeck.lebertran"
>
<application
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_launcher"
android:label=
"@string/app_name"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:theme=
"@style/Theme.Lebertran"
>
<activity
android:name=
".MainActivity"
android:exported=
"true"
android:label=
"@string/app_name"
android:theme=
"@style/Theme.Lebertran.NoActionBar"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/MainActivity.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran
import
android.os.Bundle
import
android.view.Menu
import
com.google.android.material.snackbar.Snackbar
import
com.google.android.material.navigation.NavigationView
import
androidx.navigation.findNavController
import
androidx.navigation.ui.AppBarConfiguration
import
androidx.navigation.ui.navigateUp
import
androidx.navigation.ui.setupActionBarWithNavController
import
androidx.navigation.ui.setupWithNavController
import
androidx.drawerlayout.widget.DrawerLayout
import
androidx.appcompat.app.AppCompatActivity
import
de.thluebeck.lebertran.databinding.ActivityMainBinding
class
MainActivity
:
AppCompatActivity
()
{
private
lateinit
var
appBarConfiguration
:
AppBarConfiguration
private
lateinit
var
binding
:
ActivityMainBinding
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityMainBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
setSupportActionBar
(
binding
.
appBarMain
.
toolbar
)
binding
.
appBarMain
.
fab
.
setOnClickListener
{
view
->
Snackbar
.
make
(
view
,
"Replace with your own action"
,
Snackbar
.
LENGTH_LONG
)
.
setAction
(
"Action"
,
null
).
show
()
}
val
drawerLayout
:
DrawerLayout
=
binding
.
drawerLayout
val
navView
:
NavigationView
=
binding
.
navView
val
navController
=
findNavController
(
R
.
id
.
nav_host_fragment_content_main
)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
appBarConfiguration
=
AppBarConfiguration
(
setOf
(
R
.
id
.
nav_home
,
R
.
id
.
nav_gallery
,
R
.
id
.
nav_slideshow
),
drawerLayout
)
setupActionBarWithNavController
(
navController
,
appBarConfiguration
)
navView
.
setupWithNavController
(
navController
)
}
override
fun
onCreateOptionsMenu
(
menu
:
Menu
):
Boolean
{
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater
.
inflate
(
R
.
menu
.
main
,
menu
)
return
true
}
override
fun
onSupportNavigateUp
():
Boolean
{
val
navController
=
findNavController
(
R
.
id
.
nav_host_fragment_content_main
)
return
navController
.
navigateUp
(
appBarConfiguration
)
||
super
.
onSupportNavigateUp
()
}
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/gallery/GalleryFragment.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.gallery
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
de.thluebeck.lebertran.R
import
de.thluebeck.lebertran.databinding.FragmentGalleryBinding
class
GalleryFragment
:
Fragment
()
{
private
lateinit
var
galleryViewModel
:
GalleryViewModel
private
var
_binding
:
FragmentGalleryBinding
?
=
null
// This property is only valid between onCreateView and
// onDestroyView.
private
val
binding
get
()
=
_binding
!!
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
):
View
?
{
galleryViewModel
=
ViewModelProvider
(
this
).
get
(
GalleryViewModel
::
class
.
java
)
_binding
=
FragmentGalleryBinding
.
inflate
(
inflater
,
container
,
false
)
val
root
:
View
=
binding
.
root
val
textView
:
TextView
=
binding
.
textGallery
galleryViewModel
.
text
.
observe
(
viewLifecycleOwner
,
Observer
{
textView
.
text
=
it
})
return
root
}
override
fun
onDestroyView
()
{
super
.
onDestroyView
()
_binding
=
null
}
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/gallery/GalleryViewModel.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.gallery
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
class
GalleryViewModel
:
ViewModel
()
{
private
val
_text
=
MutableLiveData
<
String
>().
apply
{
value
=
"This is gallery Fragment"
}
val
text
:
LiveData
<
String
>
=
_text
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/home/HomeFragment.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.home
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
de.thluebeck.lebertran.R
import
de.thluebeck.lebertran.databinding.FragmentHomeBinding
class
HomeFragment
:
Fragment
()
{
private
lateinit
var
homeViewModel
:
HomeViewModel
private
var
_binding
:
FragmentHomeBinding
?
=
null
// This property is only valid between onCreateView and
// onDestroyView.
private
val
binding
get
()
=
_binding
!!
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
):
View
?
{
homeViewModel
=
ViewModelProvider
(
this
).
get
(
HomeViewModel
::
class
.
java
)
_binding
=
FragmentHomeBinding
.
inflate
(
inflater
,
container
,
false
)
val
root
:
View
=
binding
.
root
val
textView
:
TextView
=
binding
.
textHome
homeViewModel
.
text
.
observe
(
viewLifecycleOwner
,
Observer
{
textView
.
text
=
it
})
return
root
}
override
fun
onDestroyView
()
{
super
.
onDestroyView
()
_binding
=
null
}
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/home/HomeViewModel.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.home
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
class
HomeViewModel
:
ViewModel
()
{
private
val
_text
=
MutableLiveData
<
String
>().
apply
{
value
=
"This is home Fragment"
}
val
text
:
LiveData
<
String
>
=
_text
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/slideshow/SlideshowFragment.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.slideshow
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
de.thluebeck.lebertran.R
import
de.thluebeck.lebertran.databinding.FragmentSlideshowBinding
class
SlideshowFragment
:
Fragment
()
{
private
lateinit
var
slideshowViewModel
:
SlideshowViewModel
private
var
_binding
:
FragmentSlideshowBinding
?
=
null
// This property is only valid between onCreateView and
// onDestroyView.
private
val
binding
get
()
=
_binding
!!
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
):
View
?
{
slideshowViewModel
=
ViewModelProvider
(
this
).
get
(
SlideshowViewModel
::
class
.
java
)
_binding
=
FragmentSlideshowBinding
.
inflate
(
inflater
,
container
,
false
)
val
root
:
View
=
binding
.
root
val
textView
:
TextView
=
binding
.
textSlideshow
slideshowViewModel
.
text
.
observe
(
viewLifecycleOwner
,
Observer
{
textView
.
text
=
it
})
return
root
}
override
fun
onDestroyView
()
{
super
.
onDestroyView
()
_binding
=
null
}
}
\ No newline at end of file
Android/lebertran/app/src/main/java/de/thluebeck/lebertran/ui/slideshow/SlideshowViewModel.kt
0 → 100644
View file @
84dd04e0
package
de.thluebeck.lebertran.ui.slideshow
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
class
SlideshowViewModel
:
ViewModel
()
{
private
val
_text
=
MutableLiveData
<
String
>().
apply
{
value
=
"This is slideshow Fragment"
}
val
text
:
LiveData
<
String
>
=
_text
}
\ No newline at end of file
Android/lebertran/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
0 → 100644
View file @
84dd04e0
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:aapt=
"http://schemas.android.com/aapt"
android:width=
"108dp"
android:height=
"108dp"
android:viewportHeight=
"108"
android:viewportWidth=
"108"
>
<path
android:pathData=
"M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"
>
<aapt:attr
name=
"android:fillColor"
>
<gradient
android:endX=
"85.84757"
android:endY=
"92.4963"
android:startX=
"42.9492"
android:startY=
"49.59793"
android:type=
"linear"
>
<item
android:color=
"#44000000"
android:offset=
"0.0"
/>
<item
android:color=
"#00000000"
android:offset=
"1.0"
/>
</gradient>
</aapt:attr>
</path>
<path
android:fillColor=
"#FFFFFF"
android:fillType=
"nonZero"
android:pathData=
"M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeColor=
"#00000000"
android:strokeWidth=
"1"
/>
</vector>
\ No newline at end of file
Android/lebertran/app/src/main/res/drawable/ic_launcher_background.xml
0 → 100644
View file @
84dd04e0
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"108dp"
android:height=
"108dp"
android:viewportHeight=
"108"
android:viewportWidth=
"108"
>
<path
android:fillColor=
"#3DDC84"
android:pathData=
"M0,0h108v108h-108z"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M9,0L9,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,0L19,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M29,0L29,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M39,0L39,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M49,0L49,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M59,0L59,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M69,0L69,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M79,0L79,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M89,0L89,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M99,0L99,108"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,9L108,9"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,19L108,19"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,29L108,29"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,39L108,39"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,49L108,49"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,59L108,59"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,69L108,69"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,79L108,79"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,89L108,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M0,99L108,99"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,29L89,29"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,39L89,39"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,49L89,49"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,59L89,59"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,69L89,69"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M19,79L89,79"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M29,19L29,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M39,19L39,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M49,19L49,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M59,19L59,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path
android:fillColor=
"#00000000"
android:pathData=
"M69,19L69,89"
android:strokeColor=
"#33FFFFFF"
android:strokeWidth=
"0.8"
/>
<path