Git Product home page Git Product logo

plaid's People

Contributors

alexjlockwood avatar amilcar-andrade avatar arangob avatar arjunpola avatar ataulm avatar bernaferrari avatar cyborgrahil avatar emartynov avatar eneim avatar erluxman avatar florina-muntenescu avatar fobo66 avatar friederbluemle avatar jlleitschuh avatar jonathan-caryl avatar kdani41 avatar keyboardsurfer avatar kurtisnelson avatar manuelvicnt avatar mattprecious avatar nickbutcher avatar pfmaggi avatar piotrek1543 avatar pranavpandey avatar pt2121 avatar romannurik avatar shuandroid avatar tiembo avatar xinyuez avatar zacsweers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plaid's Issues

Opening DribbbleShot for second time problem with image loading

Hello,
Thanks for this great source code :)

There is a problem when I open DesignerNewsStory for second time for an item in recycler view. I have made two screenshots for the first time and for the second time.

screenshot_2015-10-31-00-25-36

screenshot_2015-10-31-00-25-43

Each time I open them I get this in my log:

10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: Exception thrown during async generate
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: java.lang.IllegalArgumentException: x + width must be <= bitmap.width()
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.graphics.Bitmap.checkPixelsAccess(Bitmap.java:1390)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.graphics.Bitmap.getPixels(Bitmap.java:1346)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.support.v7.graphics.Palette$Builder.getPixelsFromBitmap(Palette.java:693)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.support.v7.graphics.Palette$Builder.generate(Palette.java:607)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.support.v7.graphics.Palette$Builder$1.doInBackground(Palette.java:664)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.support.v7.graphics.Palette$Builder$1.doInBackground(Palette.java:660)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at android.os.AsyncTask$2.call(AsyncTask.java:288)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-31 00:25:38.821 26818-3395/io.plaidapp E/Palette: at java.lang.Thread.run(Thread.java:818)

It is running in Android Api 21.

Thanks

HomeActivity OptionsMenu not animated

  1. It's not the right time to get ActionMenuView during onCreate, since the OptionsMenu may not be created .
  2. toolbar.getChildAt(1) doesn't return ActionMenuView, maybe you should find ActionMenuView recursively from Toolbar.
  3. Animate the ActionMenuView during onPrepareOptionsMenu maybe a better choice. With a boolean flag indicates whether ActionMenuView has been animated or not.
  4. Save that boolean flag when onSaveInstanceState and restore them so the menu won't animate after rotate screen.

android.view.InflateException

After i downgraded supportLibVersion = '23.1.1' to prevent the recyclerview issue from coming up and crashing the app, I ran the app and then clicked on one of the items in the recyclerview which triggered the crash below

03-01 16:35:58.179 14818-14818/io.plaidapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: io.plaidapp, PID: 14818
java.lang.RuntimeException: Unable to start activity ComponentInfo{io.plaidapp/io.plaidapp.ui.DribbbleShot}: android.view.InflateException: Binary XML file line #48: Binary XML file line #48: Error inflating class android.widget.Button
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.view.InflateException: Binary XML file line #48: Binary XML file line #48: Error inflating class android.widget.Button
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at io.plaidapp.ui.DribbbleShot.onCreate(DribbbleShot.java:169)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: android.view.InflateException: Binary XML file line #48: Error inflating class android.widget.Button
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at io.plaidapp.ui.DribbbleShot.onCreate(DribbbleShot.java:169) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at io.plaidapp.ui.DribbbleShot.onCreate(DribbbleShot.java:169) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x3f5 "res/color/secondary_text_material_dark.xml" a=1 r=0x1060119}
at android.content.res.TypedArray.getColor(TypedArray.java:447)
at android.widget.TextView.(TextView.java:738)
at android.widget.Button.(Button.java:109)
at android.widget.Button.(Button.java:105)
at android.widget.Button.(Button.java:101)
at java.lang.reflect.Constructor.newInstance(Native Method) 
at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at io.plaidapp.ui.DribbbleShot.onCreate(DribbbleShot.java:169) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Backward Compatibility Request

Hey. First of all I want to thank you for open sourcing such a beautiful masterpiece. I loved everything about Plaid. I love the transitions, animations, UI designing and everything. Your project will help a lot of designers and developers to build better apps. Also, Nice use of light status bar.

I am requesting you to kindly make this app backward compatible. I know there are things you have used which are not possible prior Lollipop. Still I would love to see this app in pre-Lollipop devices.

I would really appreciate that.

Few issues in beta.

Rotate Screen results:

  1. Main Page reloading
  2. Plaid Item Page loses the Heart button.

Main Page:

  1. The suggest email visible faster than the login dialog after hitting the FAB button
  2. Menu icon in toolbar not horizontal centered

Plaid Item Page:

  1. Reply Edittext still focused after tapping other button
  2. There is button hidden on the top right in toolbar in this page, not sure why not setting it gone
  3. few other padding margin ui stuff

good job keep going

I got this bug

Process: io.plaidapp, PID: 8269
java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2161)
at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeInserted(RecyclerView.java:4275)
at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeInserted(RecyclerView.java:9948)
at android.support.v7.widget.RecyclerView$Adapter.notifyItemInserted(RecyclerView.java:5850)
at io.plaidapp.ui.FeedAdapter.dataStartedLoading(FeedAdapter.java:633)
at io.plaidapp.data.BaseDataManager.dispatchLoadingStartedCallbacks(BaseDataManager.java:166)
at io.plaidapp.data.BaseDataManager.loadStarted(BaseDataManager.java:73)
at io.plaidapp.data.DataManager.loadSource(DataManager.java:78)
at io.plaidapp.data.DataManager.loadAllDataSources(DataManager.java:59)
at io.plaidapp.ui.HomeActivity$4.onLoadMore(HomeActivity.java:183)
at io.plaidapp.ui.recyclerview.InfiniteScrollListener.onScrolled(InfiniteScrollListener.java:54)
at android.support.v7.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:3948)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3102)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1430)
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:285)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:773)
at android.view.Choreographer.doCallbacks(Choreographer.java:586)
at android.view.Choreographer.doFrame(Choreographer.java:555)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:759)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5313)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1116)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:809)

MorphDialogToFab animation glitch

This has been driving me mad for a couple of days now:

According to the code, when dismissing the dialog there should be an animation to hide dialog child views:

        // hide child views (offset down & fade out)
        if (endValues.view instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) endValues.view;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View v = vg.getChildAt(i);
                v.animate()
                        .alpha(0f)
                        .translationY(v.getHeight() / 3)
                        .setStartDelay(0L)
                        .setDuration(50L)
                        .setInterpolator(AnimationUtils.loadInterpolator(vg.getContext(),
                                android.R.interpolator.fast_out_linear_in))
                        .start();
            }
        }

But as you can see in this slow motion capture it never happens. It just goes blank.

plaid

If this custom transition is removed (so the default one is executed) then you can see the dialog content animated back into the fab.
So there must be something in ChangeBounds removing hero view children from the animation. But I can't find what it is.

Toolbar quick return

I scrolled to bottom too much and wanted to do a search. I had to scroll back to the top to find the search button.

Shared Element transition issue

When I click on a DribbleShot, the preview image is animated to the header image in details screen.
On Samsung S5, the image bounds seems not to change and the small preview image goes to the top left on screen. Afterwards it pops to full size, if the image was not loaded (cached) before.
ezgif-1618060153
If the details were opened before (so the image was cached), the image stays in the top left corner.
ezgif-3007249193
It seems to be an issue with glide and/or caching, but happens to me only on the Samsung S5 (Android 5.0, Build LRX21T.G900FXXU1POFE)

I'm running into the same issue in my app, hope you have an idea to fix it.

API Compatibility

Forgive me if this is already mentioned elsewhere, I couldn't find any discussion in existing issues.

Since a lot of developers are looking to this project as a yard stick for how to implement material design and meaningful interaction, would you be open to PRs backporting some of the components to earlier API versions? Would be nice to see the support libraries do some of the heavy lifting.

Example: InkPageIndicator can be backported(ish) to API 15.

Questing about Filterable

@nickbutcher Asked you about this on twitter but you requested more info as a Github issue so:

In Plaid the drawer items can be selected and deselected to filter out items in the main grid. I noticed that for this, you chose to build your own filtering system, instead of using Filterable by implementing it in the grids adapter class. I was curious as to why?

Cannot download from Play Store.

I already become a tester, but when I click download it on Google Play the result show that there is "The requested URL was not found on this server."

Not able to install the beta app

After becoming a tester, i am trying to follow the link to download the app, but i keep getting the error "We're sorry, the requested URL was not found on this server."
screen shot 2016-02-19 at 11 50 35

Search to back animation has PathParser warnings

W PathParser: Points are too far apart 4.001877165966242
W PathParser: Points are too far apart 4.001877165966242

(and more)

Animating from either search to back or back to search causes several lines of warnings in logcat. Seems to be an issue in the searchback_path_circle

(Seen on a Nexus 6P)

Pressing on "Dribble following" shows an empty popup

Phone: LG G2, Android 5.0.1

Steps to reproduce:

  1. Open app
  2. Press on the "three horizontal lines button" in actionbar to show right menu
  3. Press on "Dribble following"

Same happens for: "My dribble shots" and "My dribble likes"

empty_popup

gradle build failed

import the project to Android Studio 1.5beta

gradle build

Error:(23, 0) For input string: ""
Open File

Error when run from android studio

I'm getting the following error when i compile and run it on my Galaxy s5. When install from google play it works just fine.

java.lang.RuntimeException: 
Unable to get provider android.support.v4.content.FileProvider: 
java.lang.ClassNotFoundException:
Didn't find class "android.support.v4.content.FileProvider" on path: 
DexPathList[[zip file "/data/app/io.plaidapp-2/base.apk"],nativeLibraryDirectories=[/data/app/io.plaidapp-2/lib/arm, /vendor/lib, /system/lib]]

DribbbleShot#expandImageAndFinish() and transition animation issue

I noticed that the transition animation was off when the ListView is scrolled up. Specifically, when the commentList is scrolled to bottom and I finish the activity, the ImageView seemed to expand to the original position, and it was transition back to a wrong position in the RecyclerView, where the image is cut off, and eventually the image jumped back to the correct position. An example is the gif below:

transition_animation_issue

I checked the code in DribbbleShot#expandImageAndFinish(), the animation brings the ImageView back to offset = 0, but that doesn't seem to be enough to adjust the transition animation.

To work around it, I tried scrolling the commentList back to position 0 before finishing the activity, and it is working quite well. All I did was using commentsList.smoothScrollToPosition(0); instead of the ObjectAnimation. To make things smoother, you can also add a slight delay on calling finishAfterTransition().

upgrade to 1.5.0 of the gradle plugin

I tried upgrading to 1.5.0 of the gradle plugin but I got this error:

Error:Execution failed for task ':bypass:transformNative_libsWithSyncJniLibsForRelease'.

java.io.FileNotFoundException: /Users/......./GIT/plaid/third_party/bypass/build/intermediates/bundles/release/jni/lib/arm64-v8a/libbypass.so (No such file or directory)

Reactive architecture

Hi Nick, we have talked about the architecture of this app via hangouts a few weeks ago.

Finally, I was able to write down some of my thoughts on my blog. It was way more complex and tooked much longer than I have expected, but I do not really need to tell you that 😄

If you are still interested in hearing my point of view about software architecture on android I would like to ask you to read my blog post about the refactoring as I'm explaining some core aspects there (so I don't have to repeat myself here again).

Part 1: http://hannesdorfmann.com/android/plaid-refactored-1/
Part 2: http://hannesdorfmann.com/android/plaid-refactored-2/

If you really want to go the "truly reactive way" as described in my blog post I will do some code clean up and make a pull request. Otherwise, I don't mind because as already said the main goal was to write an blog post.

All libraries I have used are under Apache 2 license.

Last but not least I want to thank you for open sourcing this app. It's a truly inspiration and I have learned a lot about animations and UI / UX!

Question about the FAB

I was curious as to why you used an ImageButton over a FloatingActionButton for the fab?

latest update broke toolbar menu items

As the title says, latest update broke the toolbar menu items, they are not clickable i thought you disabled them until.i swipe out the navigation menu manually instead of the menu item and it works which leads that there is something wrong with the menu items.
Im using Lollipop, galaxy s6 edge if that helps.

Could someone explain in detail what happens in ViewOffsetHelper's tickleInvalidationFlag?

... and why is it necessary?

private void updateOffsets() {
        ViewCompat.offsetTopAndBottom(mView, mOffsetTop - (mView.getTop() - mLayoutTop));
        ViewCompat.offsetLeftAndRight(mView, mOffsetLeft - (mView.getLeft() - mLayoutLeft));

        // Manually invalidate the view and parent to make sure we get drawn pre-M
        if (Build.VERSION.SDK_INT < 23) {
            tickleInvalidationFlag(mView);
            final ViewParent vp = mView.getParent();
            if (vp instanceof View) {
                tickleInvalidationFlag((View) vp);
            }
        }
    }

    private static void tickleInvalidationFlag(View view) {
        final float x = ViewCompat.getTranslationX(view);
        ViewCompat.setTranslationY(view, x + 1);
        ViewCompat.setTranslationY(view, x);
    }

Pressing search causes the application to crash

Hey,

found a crash on LG G2, Android 5.0.1

Steps to reproduce:

  1. Open app
  2. Press search on action bar

FATAL EXCEPTION: main Process: io.plaidapp, PID: 24700 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.drawable.Drawable.setState(int[])' on a null object reference at android.widget.SearchView.updateFocusedState(SearchView.java:861) at android.widget.SearchView.access$000(SearchView.java:95) at android.widget.SearchView$2.run(SearchView.java:165) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703))

Failed to apply plugin

I got this error:

Error:(17, 1) A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in .../plaid/gradle/wrapper/gradle-wrapper.properties to gradle-2.10-all.zip

However, it has been resolved in 'backport' branch.
bbb9694

I hasten to report because it could not build.

gradle build failed

//def gitCommitCount = Integer.parseInt('git rev-list --count HEAD'.execute([],project.rootDir).text.trim())
'git rev-list --count HEAD'.execute([],project.rootDir).text.trim() can not be cast into Integer
i just wrote def gitCommitCount = n instead ..

OOM Crash

It happens on two different genymotion devices with 5.0 and 5.1.0, after I browse few grid items.

11-02 11:46:49.654 2492-2492/io.plaidapp E/art: Throwing OutOfMemoryError "Failed to allocate a 1555212 byte allocation with 828657 free bytes and 809KB until OOM"
11-02 11:46:49.654 2492-2492/io.plaidapp D/AndroidRuntime: Shutting down VM
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime: FATAL EXCEPTION: main
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime: Process: io.plaidapp, PID: 2492
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 1555212 byte allocation with 828657 free bytes and 809KB until OOM
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.graphics.Bitmap.nativeCreate(Native Method)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.graphics.Bitmap.createBitmap(Bitmap.java:756)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.transition.TransitionUtils.createViewBitmap(TransitionUtils.java:165)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.SharedElementCallback.onCaptureSharedElementSnapshot(SharedElementCallback.java:177)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityTransitionCoordinator.captureSharedElementState(ActivityTransitionCoordinator.java:767)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityTransitionCoordinator.captureSharedElementState(ActivityTransitionCoordinator.java:690)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.EnterTransitionCoordinator.sendSharedElementDestination(EnterTransitionCoordinator.java:194)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.EnterTransitionCoordinator.viewsReady(EnterTransitionCoordinator.java:121)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.EnterTransitionCoordinator.triggerViewsReady(EnterTransitionCoordinator.java:139)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.EnterTransitionCoordinator.viewInstancesReady(EnterTransitionCoordinator.java:100)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityTransitionState.startEnter(ActivityTransitionState.java:206)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityTransitionState.enterReady(ActivityTransitionState.java:186)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.Activity.onNewActivityOptions(Activity.java:5503)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityThread.onNewActivityOptions(ActivityThread.java:2507)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1508)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5254)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
11-02 11:46:49.654 2492-2492/io.plaidapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

DribbleSearch: Scrolling crash, IndexOutOfBounds

ParsePlayer in DribbleSearch crashes at matchId.group(1) in

if (matchId.find()) {
            id = Long.parseLong(matchId.group(1));
        }

Stacktrace:

11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime: Process: io.plaidapp, PID: 30818
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime: java.lang.RuntimeException: An error occured while executing doInBackground()
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at android.os.AsyncTask$3.done(AsyncTask.java:304)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:  Caused by: java.lang.StringIndexOutOfBoundsException: length=0; index=1
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.lang.String.indexAndLength(String.java:500)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.lang.String.substring(String.java:1313)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at io.plaidapp.data.api.dribbble.DribbbleSearch.parsePlayer(DribbbleSearch.java:121)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at io.plaidapp.data.api.dribbble.DribbbleSearch.parseShot(DribbbleSearch.java:95)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at io.plaidapp.data.api.dribbble.DribbbleSearch.search(DribbbleSearch.java:70)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at io.plaidapp.data.DataManager$11.doInBackground(DataManager.java:386)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at io.plaidapp.data.DataManager$11.doInBackground(DataManager.java:383)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at android.os.AsyncTask$2.call(AsyncTask.java:292)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
11-04 18:17:33.939 30818-31202/io.plaidapp E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818) 
11

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.