mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Fix for issue #1224 showing complete notification on click
This commit is contained in:
parent
89245a6d5b
commit
534215fdbc
5 changed files with 123 additions and 24 deletions
|
|
@ -0,0 +1,87 @@
|
|||
package fr.free.nrw.commons.notification;
|
||||
|
||||
/**
|
||||
* Created by jatin on 1/3/18.
|
||||
*/
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import fr.free.nrw.commons.R;
|
||||
|
||||
/**
|
||||
* User: Bazlur Rahman Rokon
|
||||
* Date: 9/7/13 - 3:33 AM
|
||||
*/
|
||||
public class ExpandableTextView extends android.support.v7.widget.AppCompatTextView {
|
||||
private static final int DEFAULT_TRIM_LENGTH = 40;
|
||||
private static final String ELLIPSIS = "...More";
|
||||
|
||||
private CharSequence originalText;
|
||||
private CharSequence trimmedText;
|
||||
private BufferType bufferType;
|
||||
private boolean trim = true;
|
||||
private int trimLength;
|
||||
|
||||
public ExpandableTextView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public ExpandableTextView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
|
||||
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ExpandableTextView);
|
||||
this.trimLength = typedArray.getInt(R.styleable.ExpandableTextView_trimLength, DEFAULT_TRIM_LENGTH);
|
||||
typedArray.recycle();
|
||||
|
||||
setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
trim = !trim;
|
||||
setText();
|
||||
requestFocusFromTouch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setText() {
|
||||
super.setText(getDisplayableText(), bufferType);
|
||||
}
|
||||
|
||||
private CharSequence getDisplayableText() {
|
||||
return trim ? trimmedText : originalText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(CharSequence text, BufferType type) {
|
||||
originalText = text;
|
||||
trimmedText = getTrimmedText(text);
|
||||
bufferType = type;
|
||||
setText();
|
||||
}
|
||||
|
||||
private CharSequence getTrimmedText(CharSequence text) {
|
||||
if (originalText != null && originalText.length() > trimLength) {
|
||||
return new SpannableStringBuilder(originalText, 0, trimLength + 1).append(ELLIPSIS);
|
||||
} else {
|
||||
return originalText;
|
||||
}
|
||||
}
|
||||
|
||||
public CharSequence getOriginalText() {
|
||||
return originalText;
|
||||
}
|
||||
|
||||
public void setTrimLength(int trimLength) {
|
||||
this.trimLength = trimLength;
|
||||
trimmedText = getTrimmedText(originalText);
|
||||
setText();
|
||||
}
|
||||
|
||||
public int getTrimLength() {
|
||||
return trimLength;
|
||||
}
|
||||
}
|
||||
|
|
@ -17,8 +17,8 @@ import fr.free.nrw.commons.R;
|
|||
*/
|
||||
|
||||
public class NotificationRenderer extends Renderer<Notification> {
|
||||
@BindView(R.id.title) TextView title;
|
||||
@BindView(R.id.description) TextView description;
|
||||
@BindView(R.id.title) ExpandableTextView title;
|
||||
@BindView(R.id.description) ExpandableTextView description;
|
||||
@BindView(R.id.time) TextView time;
|
||||
@BindView(R.id.icon) ImageView icon;
|
||||
private NotificationClicked listener;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
tools:text="@string/placeholder_place_distance"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
<fr.free.nrw.commons.notification.ExpandableTextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -46,12 +46,12 @@
|
|||
android:layout_toRightOf="@id/icon"
|
||||
android:layout_toStartOf="@id/time"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
|
||||
tools:text="@string/placeholder_place_name"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
<fr.free.nrw.commons.notification.ExpandableTextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
android:layout_below="@id/title"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="4"
|
||||
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
tools:text="@string/placeholder_place_description"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -16,4 +16,8 @@
|
|||
<attr name="drawableEnd" format="reference"/>
|
||||
<attr name="drawableBottom" format="reference"/>
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="ExpandableTextView">
|
||||
<attr name="trimLength" format="integer"/>
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
|
|
@ -1,21 +1,29 @@
|
|||
gradleVersion = 3.0.0
|
||||
|
||||
SUPPORT_LIB_VERSION = 26.0.2
|
||||
|
||||
compileSdkVersion = android-26
|
||||
buildToolsVersion = 26.0.2
|
||||
|
||||
minSdkVersion = 15
|
||||
|
||||
targetSdkVersion = 25
|
||||
## Project-wide Gradle settings.
|
||||
#
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
#
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
# Default value: -Xmx1024m -XX:MaxPermSize=256m
|
||||
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
#
|
||||
# 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
|
||||
#Thu Mar 01 15:28:48 IST 2018
|
||||
systemProp.http.proxyPort=0
|
||||
compileSdkVersion=android-26
|
||||
android.useDeprecatedNdk=true
|
||||
|
||||
# Library dependencies
|
||||
BUTTERKNIFE_VERSION=8.6.0
|
||||
DAGGER_VERSION=2.13
|
||||
LEAK_CANARY=1.5.4
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
|
||||
#TODO: Temporary disabled. https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#aapt2
|
||||
#Refer to PR: https://github.com/commons-app/apps-android-commons/pull/932
|
||||
buildToolsVersion=26.0.2
|
||||
targetSdkVersion=25
|
||||
android.enableAapt2=false
|
||||
SUPPORT_LIB_VERSION=26.0.2
|
||||
minSdkVersion=15
|
||||
systemProp.http.proxyHost=
|
||||
LEAK_CANARY=1.5.4
|
||||
DAGGER_VERSION=2.13
|
||||
gradleVersion=3.0.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue