Skip to content

Commit

Permalink
Merge pull request #85 from sephiroth74/feature/kotlin
Browse files Browse the repository at this point in the history
Feature/kotlin
  • Loading branch information
sephiroth74 authored Nov 29, 2018
2 parents eb74422 + b059a7d commit d0e4917
Show file tree
Hide file tree
Showing 81 changed files with 3,667 additions and 4,194 deletions.
25 changes: 19 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,22 @@ jdk:
android:
components:
- tools
- android-25
- build-tools-25.0.2
- platform-tools
- tools
- build-tools-25.0.2
- build-tools-28.0.3
- android-25
- extra-android-m2repository
- extra-google-m2repository
- extra-android-support
- extra-android-suppor
- add-on
- extra

licenses:
- 'android-sdk-license-.+'
- 'android-sdk-preview-license-.+'
- 'google-gdk-license-.+'
- 'intel-android-extra-license-.+'
- 'google-gdk-license-.+'
- 'android-googletv-license-.+'

notifications:
email:
Expand All @@ -23,6 +30,12 @@ notifications:
cache: false
sudo: false

before_install:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "d56f5187479451eabf01fb78af6dfcb131a6481e" > "$ANDROID_HOME/licenses/android-sdk-license"
- sdkmanager tools
- sdkmanager --update

install:
# Ensure Gradle wrapper is executable, download wrapper and show version
- chmod +x ./gradlew; ls -l gradlew; ./gradlew wrapper -v
Expand All @@ -31,7 +44,7 @@ install:
- ./gradlew androidDependencies

script:
- ./gradlew clean build checkstyleDebug -PdisablePreDex
- ./gradlew clean build lint assemble

cache:
directories:
Expand Down
9 changes: 2 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@ Usage of the BottomNavigation widget is very easy. Just place it in your layout.

```xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout android:id="@+id/CoordinatorLayout01"
<androidx.coordinatorlayout.widget.CoordinatorLayout android:id="@+id/CoordinatorLayout01"
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:fitsSystemWindows="true">
Expand All @@ -59,7 +58,7 @@ Usage of the BottomNavigation widget is very easy. Just place it in your layout.
app:bbn_scrollEnabled="true"
app:bbn_badgeProvider="@string/bbn_badgeProvider"
app:layout_behavior="@string/bbn_phone_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
```

All the menu main configurations are defined within the xml menu resource itself. Here's an example of a menu with 4 items:
Expand Down Expand Up @@ -107,10 +106,6 @@ Examples
| 4 items without changing background. <br />Menu show/hide feature is also disabled | Menu can be easily setup for (left or right) tablet support. |
| ![Video 3](art/video3.gif) | ![Tablet Mode](art/tablet.png) |

<br />
**For a Live demo** [click here](https://appetize.io/app/19up38k8e7vbqgq6gpg8p873t8?device=nexus5&scale=100&orientation=portrait&osVersion=7.0)


Sizing
=================

Expand Down
68 changes: 32 additions & 36 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
compileSdkVersion ANDROID_BUILD_SDK_VERSION as int
buildToolsVersion ANDROID_BUILD_TOOLS_VERSION

defaultConfig {
applicationId "it.sephiroth.android.library.bottomnavigation.app"
minSdkVersion 16
targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION as int
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

lintOptions {
disable "AppLinksAutoVerifyError", "AppLinksAutoVerifyWarning", "AllowBackup", "IconMissingDensityFolder",
"GoogleAppIndexingWarning", "SetTextI18n", "HardcodedText"
Expand All @@ -28,44 +31,37 @@ android {
textOutput "stdout"
abortOnError false
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:' + SUPPORT_LIBRARY_VERSION
compile 'com.android.support:design:' + SUPPORT_LIBRARY_VERSION
compile 'com.android.support:cardview-v7:' + SUPPORT_LIBRARY_VERSION
compile 'com.android.support:gridlayout-v7:' + SUPPORT_LIBRARY_VERSION
compile 'com.android.support:palette-v7:' + SUPPORT_LIBRARY_VERSION
compile 'com.android.support:recyclerview-v7:' + SUPPORT_LIBRARY_VERSION

compile 'com.squareup.picasso:picasso:2.5.2'

compile 'com.github.clans:fab:1.6.3'

compile project(':bottom-navigation')

testCompile 'junit:junit:4.12'



androidTestCompile 'com.android.support:recyclerview-v7:' + SUPPORT_LIBRARY_VERSION
androidTestCompile 'com.android.support:support-annotations:' + SUPPORT_LIBRARY_VERSION
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test:runner:0.5'

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {

}

androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
exclude module: 'recyclerview-v7'
exclude module: 'appcompat-v7'
exclude module: 'design'
exclude module: 'support-v4'
exclude module: 'espresso-core'
}

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.1.0-alpha01'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.clans:fab:1.6.4'
implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'com.readystatesoftware.systembartint:systembartint:1.0.4'

implementation project(':bottom-navigation')

testImplementation 'junit:junit:4.12'

androidTestImplementation 'androidx.recyclerview:recyclerview:1.0.0'
androidTestImplementation 'androidx.annotation:annotation:1.0.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}

configurations.all {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package it.sephiroth.android.library.bottomnavigation;

import android.os.SystemClock;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;
import androidx.test.runner.AndroidJUnit4;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Rule;
Expand All @@ -12,10 +12,10 @@
import it.sephiroth.android.library.bottomnavigation.app.MainActivity;
import it.sephiroth.android.library.bottomnavigation.app.R;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.withId;

/**
* Created by alessandro on 4/9/16 at 7:34 PM.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package it.sephiroth.android.library.bottomnavigation;

import android.support.test.espresso.matcher.BoundedMatcher;
import androidx.test.espresso.matcher.BoundedMatcher;
import android.view.View;

import org.hamcrest.Description;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
*/

import android.os.SystemClock;
import android.support.test.espresso.UiController;
import android.support.test.espresso.action.MotionEvents;
import android.support.test.espresso.action.Swiper;
import android.support.test.espresso.core.deps.guava.base.Preconditions;
import androidx.test.espresso.UiController;
import androidx.test.espresso.action.MotionEvents;
import androidx.test.espresso.action.Swiper;
import androidx.test.espresso.core.deps.guava.base.Preconditions;
import android.util.Log;
import android.view.MotionEvent;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package it.sephiroth.android.library.bottomnavigation;

import android.support.test.espresso.UiController;
import android.support.test.espresso.ViewAction;
import android.support.v7.widget.RecyclerView;
import androidx.test.espresso.UiController;
import androidx.test.espresso.ViewAction;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;

import org.hamcrest.Matcher;

import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static org.hamcrest.Matchers.allOf;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package it.sephiroth.android.library.bottomnavigation;

import android.support.test.espresso.ViewAction;
import android.support.test.espresso.action.GeneralLocation;
import android.support.test.espresso.action.GeneralSwipeAction;
import android.support.test.espresso.action.Press;
import android.support.test.espresso.action.Swiper;
import android.support.test.espresso.action.ViewActions;
import androidx.test.espresso.ViewAction;
import androidx.test.espresso.action.GeneralLocation;
import androidx.test.espresso.action.GeneralSwipeAction;
import androidx.test.espresso.action.Press;
import androidx.test.espresso.action.Swiper;
import androidx.test.espresso.action.ViewActions;

/**
* Created by crugnola on 4/12/16.
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import android.annotation.TargetApi;
import android.graphics.Typeface;
import android.os.Build;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CoordinatorLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import com.google.android.material.appbar.AppBarLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.WindowManager;

import com.readystatesoftware.systembartint.SystemBarTintManager;
Expand All @@ -31,11 +31,11 @@ public abstract class BaseActivity extends AppCompatActivity implements BottomNa
@Override
public void onContentChanged() {
super.onContentChanged();
mViewPager = (ViewPager) findViewById(R.id.ViewPager01);
mBottomNavigation = (BottomNavigation) findViewById(R.id.BottomNavigation);
mViewPager = findViewById(R.id.ViewPager01);
mBottomNavigation = findViewById(R.id.BottomNavigation);
if (null != mBottomNavigation) {
Typeface typeface = Typeface.createFromAsset(getAssets(), "Roboto-Light.ttf");
mBottomNavigation.setOnMenuItemClickListener(this);
mBottomNavigation.setMenuItemSelectionListener(this);
mBottomNavigation.setDefaultTypeface(typeface);
}
}
Expand All @@ -62,7 +62,7 @@ public boolean hasAppBarLayout() {

public BottomNavigation getBottomNavigation() {
if (null == mBottomNavigation) {
mBottomNavigation = (BottomNavigation) findViewById(R.id.BottomNavigation);
mBottomNavigation = findViewById(R.id.BottomNavigation);
}
return mBottomNavigation;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package it.sephiroth.android.library.bottomnavigation.app;

import android.content.Context;
import android.support.design.widget.CoordinatorLayout;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.WindowInsetsCompat;
import android.support.v7.widget.Toolbar;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import it.sephiroth.android.library.bottomnavigation.MiscUtils;

/**
Expand Down Expand Up @@ -47,15 +47,15 @@ public boolean onStartNestedScroll(
if (!enabled) {
return false;
}
MiscUtils.log(TAG, Log.INFO, "onStartNestedScroll. nestedScrollAxes=" + nestedScrollAxes);
MiscUtils.INSTANCE.log(Log.INFO, "onStartNestedScroll. nestedScrollAxes=" + nestedScrollAxes);
return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL;
}

@Override
public void onNestedScrollAccepted(
final CoordinatorLayout coordinatorLayout, final Toolbar child, final View directTargetChild, final View target,
final int nestedScrollAxes) {
MiscUtils.log(TAG, Log.VERBOSE, "onNestedScrollAccepted. nestedScrollAxes=" + nestedScrollAxes);
MiscUtils.INSTANCE.log(Log.VERBOSE, "onNestedScrollAccepted. nestedScrollAxes=" + nestedScrollAxes);
super.onNestedScrollAccepted(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}

Expand All @@ -72,7 +72,7 @@ public void onNestedScroll(
final CoordinatorLayout coordinatorLayout, final Toolbar child, final View target, final int dxConsumed,
final int dyConsumed, final int dxUnconsumed,
final int dyUnconsumed) {
MiscUtils.log(TAG, Log.INFO, "onNestedScroll. dyConsumed=" + dyConsumed + ", dyUnconsumed=" + dyUnconsumed);
MiscUtils.INSTANCE.log(Log.INFO, "onNestedScroll. dyConsumed=" + dyConsumed + ", dyUnconsumed=" + dyUnconsumed);
scrolling = true;
}

Expand All @@ -88,15 +88,15 @@ public void onNestedPreScroll(
public boolean onNestedFling(
final CoordinatorLayout coordinatorLayout, final Toolbar child, final View target, final float velocityX,
final float velocityY, final boolean consumed) {
MiscUtils.log(TAG, Log.INFO, "onNestedFling. velocityY=" + velocityY + ", consumed=" + consumed);
MiscUtils.INSTANCE.log(Log.INFO, "onNestedFling. velocityY=" + velocityY + ", consumed=" + consumed);

return super.onNestedFling(coordinatorLayout, child, target, velocityX, velocityY, consumed);
}

@Override
public WindowInsetsCompat onApplyWindowInsets(
final CoordinatorLayout coordinatorLayout, final Toolbar child, final WindowInsetsCompat insets) {
MiscUtils.log(TAG, Log.INFO, "onApplyWindowInsets: " + insets);
MiscUtils.INSTANCE.log(Log.INFO, "onApplyWindowInsets: " + insets);
return super.onApplyWindowInsets(coordinatorLayout, child, insets);
}

Expand Down
Loading

0 comments on commit d0e4917

Please sign in to comment.