From 690a45980f259bfca87d310e228223ff024d846d Mon Sep 17 00:00:00 2001 From: Junaid_ebricks Date: Mon, 7 Jan 2019 17:54:09 +0500 Subject: [PATCH] add remove popup option, if user dont want to show " no user found ! sorry dialog" --- autocomplete/build.gradle | 2 +- .../java/com/otaliastudios/autocomplete/Autocomplete.java | 8 ++++++++ .../com/otaliastudios/autocomplete/AutocompletePopup.java | 1 + .../otaliastudios/autocomplete/AutocompletePresenter.java | 1 + .../otaliastudios/autocomplete/RecyclerViewPresenter.java | 4 ++++ build.gradle | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 4 ++-- sample/build.gradle | 2 +- .../main/java/com/otaliastudios/sample/UserPresenter.java | 7 ++++--- 9 files changed, 26 insertions(+), 11 deletions(-) diff --git a/autocomplete/build.gradle b/autocomplete/build.gradle index 8fdf264..5c2925c 100644 --- a/autocomplete/build.gradle +++ b/autocomplete/build.gradle @@ -8,7 +8,7 @@ group = 'com.otaliastudios' android { compileSdkVersion rootProject.ext.compileSdkVersion - buildToolsVersion rootProject.ext.buildToolsVersion + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion rootProject.ext.minSdkVersion diff --git a/autocomplete/src/main/java/com/otaliastudios/autocomplete/Autocomplete.java b/autocomplete/src/main/java/com/otaliastudios/autocomplete/Autocomplete.java index 11f9c93..7364cc6 100644 --- a/autocomplete/src/main/java/com/otaliastudios/autocomplete/Autocomplete.java +++ b/autocomplete/src/main/java/com/otaliastudios/autocomplete/Autocomplete.java @@ -219,6 +219,14 @@ public void click(T item) { if (dismiss) dismissPopup(); block = saved; } + + @Override + public void removePopUp() { + boolean saved = block; + block = true; + dismissPopup(); + block = saved; + } }); builder.clear(); diff --git a/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePopup.java b/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePopup.java index 3e6c7a4..789ffa8 100644 --- a/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePopup.java +++ b/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePopup.java @@ -496,6 +496,7 @@ private int buildDropDown() { // Add padding only if the list has items in it, that way we don't show // the popup if it is not needed. For this reason, we measure as wrap_content. mView.measure(childWidthSpec, View.MeasureSpec.makeMeasureSpec(maxContentHeight, View.MeasureSpec.AT_MOST)); + if(mView==null) return 0; final int viewHeight = mView.getMeasuredHeight(); if (viewHeight > 0) { otherHeights += paddingVert + mView.getPaddingTop() + mView.getPaddingBottom(); diff --git a/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePresenter.java b/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePresenter.java index 8e17359..3565fa7 100644 --- a/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePresenter.java +++ b/autocomplete/src/main/java/com/otaliastudios/autocomplete/AutocompletePresenter.java @@ -106,6 +106,7 @@ final void hideView() { public interface ClickProvider { void click(T item); + void removePopUp(); } /** diff --git a/autocomplete/src/main/java/com/otaliastudios/autocomplete/RecyclerViewPresenter.java b/autocomplete/src/main/java/com/otaliastudios/autocomplete/RecyclerViewPresenter.java index beba85e..100e610 100644 --- a/autocomplete/src/main/java/com/otaliastudios/autocomplete/RecyclerViewPresenter.java +++ b/autocomplete/src/main/java/com/otaliastudios/autocomplete/RecyclerViewPresenter.java @@ -78,6 +78,10 @@ protected final void dispatchClick(T item) { if (clicks != null) clicks.click(item); } + protected final void dispatchRemovePopUp(){ + if(clicks!=null) clicks.removePopUp(); + } + /** * Request that the popup should recompute its dimensions based on a recent change in * the view being displayed. diff --git a/build.gradle b/build.gradle index 349c6a4..4af685d 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.1' + classpath 'com.android.tools.build:gradle:3.2.1' // https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en // https://www.theguardian.com/technology/developer-blog/2016/dec/06/how-to-publish-an-android-library-a-mysterious-conversation classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' @@ -25,11 +25,11 @@ allprojects { } ext { - compileSdkVersion = 27 + compileSdkVersion = 28 buildToolsVersion = "27.0.3" - supportLibVersion = '27.1.1' + supportLibVersion = '28.0.0' minSdkVersion = 14 - targetSdkVersion = 27 + targetSdkVersion = 28 } task clean(type: Delete) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e7ae00f..f6c42f0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Apr 20 17:28:27 CEST 2017 +#Mon Jan 07 17:28:59 PKT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index cf441ea..90764e2 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion rootProject.ext.compileSdkVersion - buildToolsVersion rootProject.ext.buildToolsVersion + buildToolsVersion '28.0.3' defaultConfig { applicationId "com.otaliastudios.sample" diff --git a/sample/src/main/java/com/otaliastudios/sample/UserPresenter.java b/sample/src/main/java/com/otaliastudios/sample/UserPresenter.java index 291cda5..54c01ff 100644 --- a/sample/src/main/java/com/otaliastudios/sample/UserPresenter.java +++ b/sample/src/main/java/com/otaliastudios/sample/UserPresenter.java @@ -98,9 +98,10 @@ private boolean isEmpty() { @Override public void onBindViewHolder(Holder holder, int position) { if (isEmpty()) { - holder.fullname.setText("No user here!"); - holder.username.setText("Sorry!"); - holder.root.setOnClickListener(null); +// holder.fullname.setText("No user here!"); +// holder.username.setText("Sorry!"); +// holder.root.setOnClickListener(null); + dispatchRemovePopUp(); return; } final User user = data.get(position);