Skip to content
Snippets Groups Projects
Commit d0fa3c22 authored by John Carlson's avatar John Carlson
Browse files

Convert PhysicsFlowLayout to Kotlin

parent 0ea535da
No related branches found
No related tags found
No related merge requests found
Pipeline #
package com.commit451.gitlab.view;
import android.content.Context;
import android.graphics.Canvas;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.MotionEvent;
import com.jawnnypoo.physicslayout.Physics;
import com.jawnnypoo.physicslayout.PhysicsConfig;
import com.jawnnypoo.physicslayout.PhysicsLayoutParams;
import com.jawnnypoo.physicslayout.PhysicsLayoutParamsProcessor;
import com.wefika.flowlayout.FlowLayout;
/**
* Typical FrameLayout with some physics added on. Call {@link #getPhysics()} to get the
* physics component.
*/
public class PhysicsFlowLayout extends FlowLayout {
private Physics physics;
public PhysicsFlowLayout(Context context) {
super(context);
init(null);
}
public PhysicsFlowLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
public PhysicsFlowLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(attrs);
}
private void init(AttributeSet attrs) {
setWillNotDraw(false);
physics = new Physics(this, attrs);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
physics.onSizeChanged(w, h);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
physics.onLayout(changed);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
physics.onDraw(canvas);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return physics.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(@NonNull MotionEvent event) {
return physics.onTouchEvent(event);
}
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new LayoutParams(getContext(), attrs);
}
public Physics getPhysics() {
return physics;
}
private static class LayoutParams extends FlowLayout.LayoutParams implements PhysicsLayoutParams {
PhysicsConfig config;
public LayoutParams(Context c, AttributeSet attrs) {
super(c, attrs);
config = PhysicsLayoutParamsProcessor.process(c, attrs);
}
@Override
public PhysicsConfig getConfig() {
return config;
}
}
}
package com.commit451.gitlab.view
import android.content.Context
import android.graphics.Canvas
import android.util.AttributeSet
import android.view.MotionEvent
import com.jawnnypoo.physicslayout.Physics
import com.jawnnypoo.physicslayout.PhysicsConfig
import com.jawnnypoo.physicslayout.PhysicsLayoutParams
import com.jawnnypoo.physicslayout.PhysicsLayoutParamsProcessor
import com.wefika.flowlayout.FlowLayout
/**
* Typical FrameLayout with some physics added on. Call [.getPhysics] to get the
* physics component.
*/
class PhysicsFlowLayout : FlowLayout {
var physics: Physics? = null
private set
constructor(context: Context) : super(context) {
init(null)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(attrs)
}
private fun init(attrs: AttributeSet?) {
setWillNotDraw(false)
physics = Physics(this, attrs)
}
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)
physics!!.onSizeChanged(w, h)
}
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
super.onLayout(changed, l, t, r, b)
physics!!.onLayout(changed)
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
physics!!.onDraw(canvas)
}
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
return physics!!.onInterceptTouchEvent(ev)
}
override fun onTouchEvent(event: MotionEvent): Boolean {
return physics!!.onTouchEvent(event)
}
override fun generateLayoutParams(attrs: AttributeSet?): LayoutParams {
return PhysicsFlowLayout.LayoutParams(context, attrs)
}
class LayoutParams(c: Context, attrs: AttributeSet?) : FlowLayout.LayoutParams(c, attrs), PhysicsLayoutParams {
internal var config: PhysicsConfig = PhysicsLayoutParamsProcessor.process(c, attrs)
override fun getConfig(): PhysicsConfig {
return config
}
}
}
Loading
Loading
@@ -2,7 +2,7 @@
apply plugin: 'com.github.ben-manes.versions'
apply plugin: 'com.commit451.updatewrapper'
buildscript {
ext.kotlinVersion = '1.0.6'
ext.kotlinVersion = '1.1.0'
repositories {
jcenter()
maven { url "https://jitpack.io" }
Loading
Loading
@@ -12,7 +12,7 @@ buildscript {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
//check with ./gradlew dependencyUpdates
classpath 'com.github.ben-manes:gradle-versions-plugin:0.14.0'
classpath 'com.github.Commit451:updatewrapper:1.0.0'
classpath 'com.github.Commit451:updatewrapper:1.1.1'
}
}
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment