manasouza / contactnumbersearch Goto Github PK
View Code? Open in Web Editor NEWAndroid project to search contacts by phone number
Android project to search contacts by phone number
Possible solutions where in the listeners (MenuItem / EditText focus) implementation
Prepare the deployment to fix some past crashes and update according current code base
There's a walkthrough in Dropbox
Implement the sort by contact name
Contact names that start with "ร" and lowercase names as "elder" are located at the end of the list
Doing backward search until erase all numbers should show all available contacts
Related to #30
Affected: Xiaomi Redmi 5 Plus (vince), Android 8.1
Report 1 of 2
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:383)
at java.util.concurrent.FutureTask.setException (FutureTask.java:252)
at java.util.concurrent.FutureTask.run (FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at java.lang.Thread.run (Thread.java:764)
Caused by: android.database.CursorWindowAllocationException:
at android.database.CursorWindow.<init> (CursorWindow.java:137)
at android.database.CursorWindow.<init> (Unknown Source)
at android.database.CursorWindow$1.createFromParcel (CursorWindow.java:685)
at android.database.CursorWindow$1.createFromParcel (CursorWindow.java:684)
at android.database.BulkCursorDescriptor.readFromParcel (BulkCursorDescriptor.java:75)
at android.database.BulkCursorDescriptor$1.createFromParcel (BulkCursorDescriptor.java:34)
at android.database.BulkCursorDescriptor$1.createFromParcel (BulkCursorDescriptor.java:31)
at android.content.ContentProviderProxy.query (ContentProviderNative.java:421)
at android.content.ContentResolver.query (ContentResolver.java:756)
at android.content.ContentResolver.query (ContentResolver.java:705)
at android.content.ContentResolver.query (ContentResolver.java:663)
at br.com.mls.contactnumbersearch.NumberSearchActivity.getPhoneContactList (NumberSearchActivity.java:239)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:128)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:119)
at android.os.AsyncTask$2.call (AsyncTask.java:333)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
As the optionsMenu is deprecated, implement the upper right option selection
Investigate with Dev monitoring tools
java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity.getSpecificContactListLength (NumberSearchActivity.java:262)
at br.com.mls.contactnumbersearch.NumberSearchActivity.access$200 (NumberSearchActivity.java:35)
at br.com.mls.contactnumbersearch.NumberSearchActivity$1.onKey (NumberSearchActivity.java:77)
at android.view.View.dispatchKeyEvent (View.java:9891)
The line of code in respect to that error was removed and the logic replaced
What devices uninstalled the app and count by device
How long the app staid installed
Chars like (,),-, etc. does not allow search to be continuous. This chars must be excluded during search.
Remembering that search field allows only numbers
Every time entering in the App the contacts are being refreshed
Previous behavior used to refresh with SharedPrefs which is way faster
Mi 5
2816 MB
Qualcomm MSM8996
1080x1920
java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity.getSpecificContactListLength (NumberSearchActivity.java:262)
at br.com.mls.contactnumbersearch.NumberSearchActivity.access$200 (NumberSearchActivity.java:35)
at br.com.mls.contactnumbersearch.NumberSearchActivity$1.onKey (NumberSearchActivity.java:77)
at android.view.View.dispatchKeyEvent (View.java:9887)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1667)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1667)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1667)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1667)
at com.android.internal.policy.DecorView.superDispatchKeyEvent (DecorView.java:406)
at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent (PhoneWindow.java:1800)
Android 7
Huawei
Mate 10 lite
3840 MB
HiSilicon KIRIN659
1080x2160
java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity$NumberSearchTextWatcher.onTextChanged (NumberSearchActivity.java:301)
at android.widget.TextView.sendOnTextChanged (TextView.java:8510)
at android.widget.TextView.handleTextChanged (TextView.java:8572)
at android.widget.TextView$ChangeWatcher.onTextChanged (TextView.java:10784)
at android.text.SpannableStringBuilder.sendTextChanged (SpannableStringBuilder.java:1212)
at android.text.SpannableStringBuilder.replace (SpannableStringBuilder.java:582)
at android.text.SpannableStringBuilder.delete (SpannableStringBuilder.java:230)
at android.text.SpannableStringBuilder.delete (SpannableStringBuilder.java:229)
at android.view.inputmethod.BaseInputConnection.deleteSurroundingText (BaseInputConnection.java:256)
at com.android.internal.view.IInputConnectionWrapper.executeMessage (IInputConnectionWrapper.java:454)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage (IInputConnectionWrapper.java:91)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:156)
at android.app.ActivityThread.main (ActivityThread.java:6605)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:999)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:889)
Upload error on APK when trying to create a new release with target SDK 16
REF: https://developer.android.com/distribute/best-practices/develop/target-sdk
After length of 10, the background color turns red.
Considerations:
-ems property was removed on layout
-the length must not be limited
Validate this error on AVD with Android 2.2
StackTrace:
java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:200) at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) at java.util.concurrent.FutureTask.setException(FutureTask.java:124) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) at java.util.concurrent.FutureTask.run(FutureTask.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) at java.lang.Thread.run(Thread.java:1096) Caused by: java.lang.NoSuchMethodError: java.lang.String.isEmpty at br.com.mls.contactnumbersearch.NumberSearchActivity.getPhoneContactList(NumberSearchActivity.java:184) at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground(NumberSearchActivity.java:82) at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground(NumberSearchActivity.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:185) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) ... 4 more
NPE still happening for v1.0.2 (suspicious cursor == null
):
Caused by: java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.cachedContactsDiffers (NumberSearchActivity.java:107)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:98)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:91)
This functionality is only available when the menu button is pressed (old devices)
For instance, think about what devices uninstalled the app and how long the app staid installed
Increment targetSdk (+1)
Follow doc guide
Review:
https://developer.android.com/distribute/best-practices/develop/target-sdk#premarshmallow
java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchOperations.excludeNonNumberChars (NumberSearchOperations.java:71)
at br.com.mls.contactnumbersearch.NumberSearchOperations.refreshContactDataList (NumberSearchOperations.java:59)
at br.com.mls.contactnumbersearch.NumberSearchActivity.refreshContactList (NumberSearchActivity.java:233)
at br.com.mls.contactnumbersearch.NumberSearchActivity.access$400 (NumberSearchActivity.java:35)
at br.com.mls.contactnumbersearch.NumberSearchActivity$1.onKey (NumberSearchActivity.java:82)
at android.view.View.dispatchKeyEvent (View.java:9878)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1667)
The method does not exist anymore: excludeNonNumberChars
java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity.excludeNonNumberChars (NumberSearchActivity.java:246)
at br.com.mls.contactnumbersearch.NumberSearchActivity.refreshContactList (NumberSearchActivity.java:232)
at br.com.mls.contactnumbersearch.NumberSearchActivity.access$2 (NumberSearchActivity.java:209)
at br.com.mls.contactnumbersearch.NumberSearchActivity$1.onKey (NumberSearchActivity.java:67)
at android.view.View.dispatchKeyEvent (View.java:9241)
at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1642)```
Android version: 6.0
Device:
Oppo
CPH1701
3072 MB
Qualcomm MSM8940
720x1280
Supported
Caused by: java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity.getPhoneContactList (NumberSearchActivity.java:166)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:82)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:1)
at android.os.AsyncTask$2.call (AsyncTask.java:295)
at java.util.concurrent.FutureTask.run (FutureTask.java:237)
No details found yet
Affected (incomplete info): CPH1803 (CPH1803)
Received an "Action required: Update your app to comply with Google Play Permissions policy" due to a dependency with:
br.com.mls.contactnumbersearch READ_CALL_LOG
Looking at:
https://developer.android.com/reference/android/Manifest.permission#READ_CALL_LOG
we can see that this permission is packed together with android.permission.READ_CONTACTS
if targetSdkVersion is 15 or lower
If some number is pasted at the form field, the search action is not fired
Study Material Design to see what's applicable for the current layout
Apply the updates
NumberSearchOperations
getSpecificContactListLength
currently works only on forward searchAfter turning back from some number typing (backspace), contacts does not shown accordinly
Caused by: android.database.sqlite.SQLiteException:
at android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:181)
at android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:137)
at android.content.ContentProviderProxy.query (ContentProviderNative.java:420)
at android.content.ContentResolver.query (ContentResolver.java:478)
at android.content.ContentResolver.query (ContentResolver.java:422)
at br.com.mls.contactnumbersearch.NumberSearchActivity.getPhoneContactList (NumberSearchActivity.java:198)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:101)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:93)
https://developer.android.com/distribute/best-practices/develop/target-sdk
Google Play will require that new apps target at least Android 8.0 (API level 26) from August 1, 2018, and that app updates target Android 8.0 from November 1, 2018.
Android 8.0
Nokia 5
2048MB
Qualcomm MSM8937 (Snapdragon 430)
8x ARM Cortex-A53 (1400 Mhz)
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:383)
at java.util.concurrent.FutureTask.setException (FutureTask.java:252)
at java.util.concurrent.FutureTask.run (FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at java.lang.Thread.run (Thread.java:764)
Caused by: android.database.CursorWindowAllocationException:
at android.database.CursorWindow.<init> (CursorWindow.java:137)
at android.database.CursorWindow.<init> (Unknown Source)
at android.database.CursorWindow$1.createFromParcel (CursorWindow.java:685)
at android.database.CursorWindow$1.createFromParcel (CursorWindow.java:684)
at android.database.BulkCursorDescriptor.readFromParcel (BulkCursorDescriptor.java:75)
at android.database.BulkCursorDescriptor$1.createFromParcel (BulkCursorDescriptor.java:34)
at android.database.BulkCursorDescriptor$1.createFromParcel (BulkCursorDescriptor.java:31)
at android.content.ContentProviderProxy.query (ContentProviderNative.java:421)
at android.content.ContentResolver.query (ContentResolver.java:756)
at android.content.ContentResolver.query (ContentResolver.java:705)
at android.content.ContentResolver.query (ContentResolver.java:663)
at br.com.mls.contactnumbersearch.NumberSearchActivity.getPhoneContactList (NumberSearchActivity.java:198)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:101)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:93)
at android.os.AsyncTask$2.call (AsyncTask.java:333)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
Due to SharedPrefs implementation, there's the need to have a command to force the contacts update
Tests revealed App crashes before open
Android 5.1
Samsung
Galaxy Grand Prime
1024 MB + 2 more
Qualcomm MSM8216 + 3 more
540x960
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:355)
at java.util.concurrent.FutureTask.setException (FutureTask.java:222)
at java.util.concurrent.FutureTask.run (FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
at java.lang.Thread.run (Thread.java:818)
Caused by: java.lang.NullPointerException:
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.cachedContactsDiffers (NumberSearchActivity.java:108)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:100)
at br.com.mls.contactnumbersearch.NumberSearchActivity$2.doInBackground (NumberSearchActivity.java:93)
at android.os.AsyncTask$2.call (AsyncTask.java:292)
at java.util.concurrent.FutureTask.run (FutureTask.java:237)
Test the application for the 3 supported languages
Maybe it happens by the way contacts are added to shared prefs
Choose one AVD as tablet to test the application
Performance issues related to contacts retrieve:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.