It is best to call this only when over-scroll isn't currently in-effect - i.e. verify that
24 | * getCurrentState()==IOverScrollState.STATE_IDLE as a precondition, or otherwise
25 | * use a state listener previously installed using
26 | * {@link #setOverScrollStateListener(IOverScrollStateListener)}.
Note: Upon detachment completion, the view in question will return to the default
29 | * Android over-scroll configuration (i.e. {@link View.OVER_SCROLL_ALWAYS} mode). This can be
30 | * overridden by calling View.setOverScrollMode(mode) immediately thereafter.
69 | * Because the implementation mechanism of Looper, real dump interval would be longer than 70 | * the period specified here (especially when cpu is busier). 71 | *
72 | * 73 | * @return dump interval (in millis) 74 | */ 75 | public int provideDumpInterval() { 76 | return provideBlockThreshold(); 77 | } 78 | 79 | /** 80 | * Path to save log, like "/blockcanary/", will save to sdcard if can. 81 | * 82 | * @return path of log files 83 | */ 84 | public String providePath() { 85 | return "/blockcanary/"; 86 | } 87 | 88 | /** 89 | * If need notification to notice block. 90 | * 91 | * @return true if need, else if not need. 92 | */ 93 | public boolean displayNotification() { 94 | return true; 95 | } 96 | 97 | /** 98 | * Implement in your project, bundle files into a zip file. 99 | * 100 | * @param src files before compress 101 | * @param dest files compressed 102 | * @return true if compression is successful 103 | */ 104 | public boolean zip(File[] src, File dest) { 105 | return false; 106 | } 107 | 108 | /** 109 | * Implement in your project, bundled log files. 110 | * 111 | * @param zippedFile zipped file 112 | */ 113 | public void upload(File zippedFile) { 114 | throw new UnsupportedOperationException(); 115 | } 116 | 117 | 118 | /** 119 | * Packages that developer concern, by default it uses process name, 120 | * put high priority one in pre-order. 121 | * 122 | * @return null if simply concern only package with process name. 123 | */ 124 | public List