Awesome Open Source
Awesome Open Source


Jcenter Build Status Android Arsenal API License Author QQ-Group

Listen the progress of downloading and uploading in Okhttp (compatible Retrofit and Glide).





ProgressManager a line of code to listen App all the links and upload the progress of the network, including Glide picture loading progress, to achieve the principle of similar EventBus, you can be in anywhere in App, the number of listeners to Url address as an identifier, registered to the framework, when this Url address haves to download or upload the action, the framework will take the initiative to call All listeners registered with this Url address are synchronized to multiple modules.


  • Easy to use, just a line of code to listen progress.
  • Multi-platform support, support Okhttp , Retrofit , Glide ,Use Okhttp native Api , there is no compatibility problem.
  • Low coupling, the actual request and the progress of the receiver does not exist directly or indirectly, that can be anywhere in App to receive progress information.
  • Low intrusion, use this framework you do not need to change the code before uploading or downloading, ie using or not using this framework does not affect the original code.
  • Multi-end synchronization, the same data source upload or download progress can specify a number of different receivers, less to use EventBus achieve multiple port synchronization update progress.
  • Support multi-file upload.
  • Support URL redirection.
  • Automatic management of the listener, less to manually cancel the trouble of the listener.
  • The default run in the main line layer, less to switch the thread of trouble.
  • Lightweight framework, does not contain any three-party library, very small size.


 implementation 'me.jessyan:progressmanager:1.5.0'


Step 1

 // When building OkHttpClient, the OkHttpClient.Builder() is passed to the with() method to initialize the configuration
 OkHttpClient = ProgressManager.getInstance().with(new OkHttpClient.Builder())

Step 2

 // Glide load
 ProgressManager.getInstance().addResponseListener(IMAGE_URL, getGlideListener());

 // Okhttp/Retofit download
 ProgressManager.getInstance().addResponseListener(DOWNLOAD_URL, getDownloadListener());

 // Okhttp/Retofit upload
 ProgressManager.getInstance().addRequestListener(UPLOAD_URL, getUploadListener());


 -keep class me.jessyan.progressmanager.** { *; }
 -keep interface me.jessyan.progressmanager.** { *; }

About Me


 Copyright 2017, jessyan

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   See the License for the specific language governing permissions and
   limitations under the License.
Alternatives To Progressmanager
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (412,491
Upload (14,179
Arm (8,791
Progress (7,585
Listener (5,909
Receiver (3,613
Okhttp (1,715
Eventbus (1,539
Mvparms (41