Skip to content

Commit

Permalink
Updated libs, template recipes, README, etc.
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubkinst committed Mar 8, 2017
1 parent fcde71b commit 89da88a
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 26 deletions.
11 changes: 5 additions & 6 deletions README.md
@@ -1,4 +1,4 @@
# Android ViewModelBinding 2.0 ALPHA
# Android ViewModelBinding 2.0
[![Build Status](https://travis-ci.org/jakubkinst/Android-ViewModelBinding.svg?branch=master)](https://travis-ci.org/jakubkinst/Android-ViewModelBinding) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ViewModelBinding-green.svg?style=true)](https://android-arsenal.com/details/1/3240) [ ![Download](https://api.bintray.com/packages/jakubkinst/cz.kinst.jakub/android-viewmodelbinding/images/download.svg) ](https://bintray.com/jakubkinst/cz.kinst.jakub/android-viewmodelbinding/_latestVersion)
## Intro
A lightweight library aiming to speed up Android app development by leveraging the new [Android Data Binding](http://developer.android.com/tools/data-binding/guide.html) and taking the best from the [Model-View-ViewModel](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel) design pattern.
Expand All @@ -23,15 +23,13 @@ ViewModel instances are stored in a global static Map and reattached automatical
## Installation

```groovy
compile 'cz.kinst.jakub:viewmodelbinding:2.0.0-alpha2'
compile 'cz.kinst.jakub:viewmodelbinding:2.0.0'
```

Don't forget to **enable Data Binding** in your module:
```groovy
android {
dataBinding {
enabled = true;
}
dataBinding.enabled = true
}
```
## Usage
Expand Down Expand Up @@ -156,10 +154,11 @@ To deploy new screens even faster, use the included [Android Studio Template](/e
- New way of configuring Activity/Fragment (call `setupViewModel()` before `super.onCreate()`)
- Added `onViewModelInitialized()` callback to Activity/Fragment to be able to setup ViewModel before `onViewModelCreated()` is called (example: feeding ViewModel with Extras/Arguments - see `ArgumentDialogFragment` in sample)
- Optional automatic binding of Activity/Fragment into layout file next to the ViewModel instance (add variable of name `view` and appropriate type)
- Added simple permission handling (PermissionManager) to ViewModel - see sample

## Changelog

#### v2.0.0-alpha1
#### v2.0.0
- First 2.0.0 version

#### v0.9.4 (Jul 18, 2016)
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Expand Up @@ -5,8 +5,8 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0-beta3'
classpath 'me.tatarka:gradle-retrolambda:3.5.0'
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'me.tatarka:gradle-retrolambda:3.6.0'

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
Expand Down
Expand Up @@ -2,10 +2,10 @@
<recipe>

<#if appCompat && !(hasDependency('cz.kinst.jakub:viewmodelbinding'))>
<dependency mavenUrl="cz.kinst.jakub:viewmodelbinding:0.9.4"/>
<dependency mavenUrl="cz.kinst.jakub:viewmodelbinding:2.0.0"/>
</#if>
<#if useStatefulLayout && !(hasDependency('cz.kinst.jakub:stateful-layout'))>
<dependency mavenUrl="cz.kinst.jakub:stateful-layout:1.1.1"/>
<#if useStatefulLayout && !(hasDependency('cz.kinst.jakub:android-stateful-layout-simple'))>
<dependency mavenUrl="cz.kinst.jakub:android-stateful-layout-simple:2.0.4"/>
</#if>

<#if screenType == "Activity">
Expand Down
@@ -1,8 +1,6 @@
package ${packageName}<#if scrPackage != "">.${scrPackage}</#if>;

<#if screenType == "Fragment">
import android.os.Bundle;
</#if>
import cz.kinst.jakub.viewmodelbinding.ViewModelActivity;
import cz.kinst.jakub.viewmodelbinding.ViewModelBindingConfig;

Expand All @@ -18,9 +16,9 @@ public class ${screenClass} extends ViewModel${screenType}<${underscoreToCamelCa
}
</#if>


@Override
public ViewModelBindingConfig<${viewModelClass}> getViewModelBindingConfig() {
return new ViewModelBindingConfig<>(R.layout.${layoutName}, ${classToResource(screenClass)?cap_first}ViewModel.class, BR.viewModel);
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setupViewModel(R.layout.${layoutName}, ${classToResource(screenClass)?cap_first}ViewModel.class);
super.onCreate(savedInstanceState);
}
}
Expand Up @@ -4,24 +4,24 @@ import android.databinding.ObservableField;
import android.view.View;

<#if useStatefulLayout>
import cz.kinst.jakub.view.StatefulLayout;
import cz.kinst.jakub.view.SimpleStatefulLayout;
</#if>

import cz.kinst.jakub.viewmodelbinding.ViewModel;


public class ${viewModelClass} extends ViewModel<${underscoreToCamelCase(layoutName)}Binding> {
public class ${viewModelClass} extends ViewModel {

<#if useStatefulLayout>
public final ObservableField<StatefulLayout.State> state = new ObservableField<>(StatefulLayout.State.PROGRESS);
public final ObservableField<String> state = new ObservableField<>(SimpleStatefulLayout.State.PROGRESS);
</#if>

@Override
public void onViewModelCreated() {
super.onViewModelCreated();
// Do initial setup
<#if useStatefulLayout>
state.set(StatefulLayout.State.CONTENT);
state.set(SimpleStatefulLayout.State.CONTENT);
</#if>
}
}
Expand Up @@ -10,7 +10,7 @@
type="${packageName}.<#if vmPackage != "">${vmPackage}.</#if>${viewModelClass}"/>
</data>
<#if useStatefulLayout>
<cz.kinst.jakub.view.StatefulLayout
<cz.kinst.jakub.view.SimpleStatefulLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:state="@{viewModel.state}">
Expand All @@ -21,6 +21,6 @@
android:orientation="vertical">
</LinearLayout>
<#if useStatefulLayout>
</cz.kinst.jakub.view.StatefulLayout>
</cz.kinst.jakub.view.SimpleStatefulLayout>
</#if>
</layout>
2 changes: 1 addition & 1 deletion sample/build.gradle
Expand Up @@ -35,5 +35,5 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile project(':viewmodelbinding')
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:design:25.2.0'
}
4 changes: 2 additions & 2 deletions viewmodelbinding/build.gradle
Expand Up @@ -61,8 +61,8 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
provided 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.android.support:appcompat-v7:25.2.0'
provided 'com.squareup.retrofit2:retrofit:2.2.0'
}

apply from: '../publish.gradle'
Expand Down

0 comments on commit 89da88a

Please sign in to comment.