diff --git a/app/build.gradle b/app/build.gradle index 7c556c1..4e213b9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion "27.0.0" + compileSdkVersion 28 + buildToolsVersion "28.0.3" defaultConfig { applicationId "com.borjabravo.readmoretextview" minSdkVersion 14 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 1 versionName "1.0" } @@ -25,8 +25,8 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:27.0.0' - implementation 'com.android.support:design:27.0.0' + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'com.google.android.material:material:1.0.0' implementation project(':readmoretextview') testImplementation 'junit:junit:4.12' } diff --git a/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java b/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java index 8f50499..8b97bf4 100644 --- a/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java +++ b/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java @@ -1,7 +1,7 @@ package com.borjabravo.readmoretextviewsample; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.widget.TextView; public class MainActivity extends AppCompatActivity { diff --git a/build.gradle b/build.gradle index ea35e68..d41323b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,21 @@ buildscript { repositories { - jcenter() google() + maven { + url "https://maven.google.com" + } + jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0' - classpath 'com.novoda:bintray-release:0.5.0' + classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.novoda:bintray-release:0.8.0' } } allprojects { repositories { - jcenter() google() + jcenter() } } diff --git a/gradle.properties b/gradle.properties index 1d3591c..915f0e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,4 +15,6 @@ # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true \ No newline at end of file +# org.gradle.parallel=true +android.enableJetifier=true +android.useAndroidX=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b692f5e..4d49568 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Nov 12 12:19:18 CET 2017 +#Sun Aug 04 11:57:53 EEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/readmoretextview/build.gradle b/readmoretextview/build.gradle index 1fefb5e..a1d0a2a 100644 --- a/readmoretextview/build.gradle +++ b/readmoretextview/build.gradle @@ -12,12 +12,12 @@ publish { } android { - compileSdkVersion 27 - buildToolsVersion '27.0.0' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 14 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 1 versionName "1.0" } @@ -28,6 +28,6 @@ android { } dependencies { - implementation 'com.android.support:support-compat:27.0.0' + implementation 'androidx.core:core:1.0.2' testImplementation 'junit:junit:4.12' } \ No newline at end of file diff --git a/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreListener.java b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreListener.java new file mode 100644 index 0000000..8c9e0f9 --- /dev/null +++ b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreListener.java @@ -0,0 +1,9 @@ +package com.borjabravo.readmoretextview; + +/** + * Created by Mays Atari. + */ + +public interface ReadMoreListener { + void onReadMoreClick(boolean readMore); +} diff --git a/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java index f560151..0b5a0b0 100644 --- a/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java +++ b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java @@ -15,11 +15,11 @@ */ package com.borjabravo.readmoretextview; + import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.os.Build; -import android.support.v4.content.ContextCompat; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextPaint; @@ -30,6 +30,8 @@ import android.view.ViewTreeObserver; import android.widget.TextView; +import androidx.core.content.ContextCompat; + public class ReadMoreTextView extends TextView { private static final int TRIM_MODE_LINES = 0; @@ -38,17 +40,19 @@ public class ReadMoreTextView extends TextView { private static final int DEFAULT_TRIM_LINES = 2; private static final int INVALID_END_INDEX = -1; private static final boolean DEFAULT_SHOW_TRIM_EXPANDED_TEXT = true; + private static final boolean DEFAULT_READ_MORE = true; private static final String ELLIPSIZE = "... "; private CharSequence text; private BufferType bufferType; - private boolean readMore = true; + private boolean readMore; private int trimLength; private CharSequence trimCollapsedText; private CharSequence trimExpandedText; private ReadMoreClickableSpan viewMoreSpan; private int colorClickableText; private boolean showTrimExpandedText; + private ReadMoreListener readMoreListener; private int trimMode; private int lineEndIndex; @@ -73,6 +77,7 @@ public ReadMoreTextView(Context context, AttributeSet attrs) { ContextCompat.getColor(context, R.color.accent)); this.showTrimExpandedText = typedArray.getBoolean(R.styleable.ReadMoreTextView_showTrimExpandedText, DEFAULT_SHOW_TRIM_EXPANDED_TEXT); + this.readMore = typedArray.getBoolean(R.styleable.ReadMoreTextView_readMore, DEFAULT_READ_MORE); this.trimMode = typedArray.getInt(R.styleable.ReadMoreTextView_trimMode, TRIM_MODE_LINES); typedArray.recycle(); viewMoreSpan = new ReadMoreClickableSpan(); @@ -178,11 +183,23 @@ public void setTrimLines(int trimLines) { this.trimLines = trimLines; } + public void setReadMore(boolean readMore) { + this.readMore = readMore; + } + + public void setReadMoreListener(ReadMoreListener readMoreListener) { + this.readMoreListener = readMoreListener; + } + private class ReadMoreClickableSpan extends ClickableSpan { @Override public void onClick(View widget) { readMore = !readMore; setText(); + + if(readMoreListener != null){ + readMoreListener.onReadMoreClick(readMore); + } } @Override diff --git a/readmoretextview/src/main/res/values/attrs.xml b/readmoretextview/src/main/res/values/attrs.xml index 54da4a8..8de7fb3 100644 --- a/readmoretextview/src/main/res/values/attrs.xml +++ b/readmoretextview/src/main/res/values/attrs.xml @@ -5,6 +5,7 @@ +