Skip to content

Commit

Permalink
Merge pull request #2 from nomtek/feature/statusbar
Browse files Browse the repository at this point in the history
Feature/statusbar
  • Loading branch information
fenrirx22 authored Nov 14, 2018
2 parents ab6ece1 + ea27e66 commit 7091d5c
Show file tree
Hide file tree
Showing 22 changed files with 272 additions and 25 deletions.
Binary file modified .idea/caches/build_file_checksums.ser
Binary file not shown.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,11 @@ allprojects {

###### ToolbarController [How to use](https://github.com/nomtek/NomtekUtills/blob/master/toolbarcontroller/README.md)
```gradle
implementation 'com.github.nomtek.NomtekUtills:toolbarcontroller:1.0.1'
implementation 'com.github.nomtek.NomtekUtills:toolbarcontroller:1.0.2'
```

###### StatusbarController [How to use](https://github.com/nomtek/NomtekUtills/blob/master/statusbarcontroller/README.md) - [![](https://jitpack.io/v/nomtek/NomtekUtills.svg)](https://jitpack.io/#nomtek/NomtekUtills)
```gradle
implementation 'com.github.nomtek.NomtekUtills:statusbarcontroller:1.0.2'
```

1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation project(':toolbarcontroller')
implementation project(':statusbarcontroller')
}
6 changes: 4 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<activity android:name=".ToolbarActivity"/>
<activity android:name=".ToolbarSecondActivity" />
<activity android:name="com.nomtek.statusbarcontroller.example.StatusBarActivity" />
<activity android:name="com.nomtek.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" />
</application>

</manifest>
27 changes: 27 additions & 0 deletions app/src/main/java/com/nomtek/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.nomtek

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import com.nomtek.statusbarcontroller.example.StatusBarActivity
import com.nomtek.toolbarcontroller.example.R
import com.nomtek.toolbarcontroller.example.ToolbarActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initOnClickListeners()
}

private fun initOnClickListeners() {
toolbarButton.setOnClickListener {
startActivity(Intent(this, ToolbarActivity::class.java))
}
statusbarButton.setOnClickListener {
startActivity(Intent(this, StatusBarActivity::class.java))
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.nomtek.statusbarcontroller.example

import android.os.Build
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import com.nomtek.libs.statusbarcontroller.StatusBarController
import com.nomtek.toolbarcontroller.example.R
import kotlinx.android.synthetic.main.activity_statusbar.*

class StatusBarActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_statusbar)
initOnClickListeners()
}

private fun initOnClickListeners() {
redButton.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StatusBarController(this, backgroundColorRes = R.color.red, isDarkTint = true)
}
}
blackButton.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StatusBarController(this, backgroundColorRes = R.color.black, isDarkTint = false)
}
}
defaultButton.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
StatusBarController(this)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ import android.support.v7.app.AppCompatActivity
import com.nomtek.libs.toolbarcontroller.ToolbarController
import com.nomtek.toolbarcontroller.example.decorators.ToolbarBackgroundColorDecorator
import com.nomtek.toolbarcontroller.example.decorators.ToolbarTitleDecorator
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.activity_toolbar.*

class MainActivity : AppCompatActivity() {
class ToolbarActivity : AppCompatActivity() {

private val toolbarController: ToolbarController = ToolbarController()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setContentView(R.layout.activity_toolbar)

toolbarController
.addDecorator(ToolbarBackgroundColorDecorator(colorRes= R.color.green))
.addDecorator(ToolbarTitleDecorator(resources.getString(R.string.main_activity_toolbar_title)))
.build(toolbar, R.layout.main_activity_toolbar)
.build(toolbar, R.layout.toolbar_activity_toolbar)


goToNextActivityButton.setOnClickListener {
startActivity(Intent(this, SecondActivity::class.java))
startActivity(Intent(this, ToolbarSecondActivity::class.java))
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ import com.nomtek.libs.toolbarcontroller.ToolbarController
import com.nomtek.toolbarcontroller.example.decorators.ToolbarBackButtonDecorator
import com.nomtek.toolbarcontroller.example.decorators.ToolbarBackgroundColorDecorator
import com.nomtek.toolbarcontroller.example.decorators.ToolbarTitleDecorator
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.activity_toolbar.*

class SecondActivity : AppCompatActivity() {
class ToolbarSecondActivity : AppCompatActivity() {

private val toolbarController: ToolbarController = ToolbarController()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
setContentView(R.layout.activity_second_toolbar)

toolbarController
.addDecorator(ToolbarBackgroundColorDecorator(colorRes = R.color.colorPrimary))
Expand Down
23 changes: 14 additions & 9 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,26 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
tools:context="com.nomtek.MainActivity">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
<Button
android:id="@+id/toolbarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Toolbar Controller"
app:layout_constraintBottom_toTopOf="@+id/statusbarButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/goToNextActivityButton"
android:id="@+id/statusbarButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to second activity"
app:layout_constraintTop_toTopOf="parent"
android:text="Statusbar Controller"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
app:layout_constraintTop_toBottomOf="@+id/toolbarButton" />

</android.support.constraint.ConstraintLayout>
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".SecondActivity"
tools:showIn="@layout/activity_second">
tools:context=".ToolbarSecondActivity"
tools:showIn="@layout/activity_second_toolbar">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
Expand Down
53 changes: 53 additions & 0 deletions app/src/main/res/layout/activity_statusbar.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.nomtek.statusbarcontroller.example.StatusBarActivity">

<Button
android:id="@+id/redButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:backgroundTint="@color/red"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="Red statubar"
app:layout_constraintBottom_toTopOf="@+id/blackButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/blackButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:backgroundTint="@color/black"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="Black statubar"
android:textColor="@color/white"
app:layout_constraintBottom_toTopOf="@+id/defaultButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/redButton" />

<Button
android:id="@+id/defaultButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="Default statubar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/blackButton" />


</android.support.constraint.ConstraintLayout>
24 changes: 24 additions & 0 deletions app/src/main/res/layout/activity_toolbar.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ToolbarActivity">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />

<Button
android:id="@+id/goToNextActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to second activity"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>

</android.support.constraint.ConstraintLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="green">#008129</color>
<color name="red">#ff0900</color>
</resources>
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.2.71'
ext.kotlin_version = '1.3.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
Binary file added resources/statusbar.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions statusbarcontroller/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[![](https://jitpack.io/v/nomtek/NomtekUtills.svg)](https://jitpack.io/#nomtek/NomtekUtills)

# StatusBarController (min sdk version - 21 )
Customize toolbar with one line of the code!

<img src="../resources/statusbar.gif" width="250">

### How to use ( full example in the "app" folder )
##### 1. Set statusbar color with resouce color
```kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
StatusBarController(this, backgroundColorRes = R.color.red)
}
```
##### 2. Set statusbar color with hex color
```kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
StatusBarController(this, backgroundColorHex = Color.WHITE)
}
```

##### 3. Change statusbar tint color
```kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
StatusBarController(this, backgroundColorHex = Color.WHITE, isDarkTint = true)
}
```
5 changes: 5 additions & 0 deletions statusbarcontroller/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 28
Expand Down Expand Up @@ -31,4 +32,8 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {
mavenCentral()
}
Loading

0 comments on commit 7091d5c

Please sign in to comment.