1 package org.coolreader.crengine;
2 
3 import android.view.Gravity;
4 import android.view.LayoutInflater;
5 import android.view.View;
6 import android.widget.LinearLayout;
7 import android.widget.PopupWindow;
8 
9 import org.coolreader.R;
10 
11 public class ProgressPopup {
12 	private BaseActivity context;
13 	private View parent;
14 	private PopupWindow popup;
ProgressPopup(BaseActivity context, View parent)15 	public ProgressPopup(BaseActivity context, View parent) {
16 		this.context = context;
17 		this.parent = parent;
18 	}
show()19 	public void show() {
20 		if (popup == null) {
21 			L.d("showing progress indicator");
22 	        LayoutInflater inflater = LayoutInflater.from(context);
23 	        View content = inflater.inflate(R.layout.network_access_progress, null);
24 	        content.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
25 			popup = new PopupWindow(content, content.getMeasuredWidth(), content.getMeasuredHeight());
26 	        //popup.setContentView(content);
27 	        popup.setBackgroundDrawable(null);
28 	        popup.setOutsideTouchable(true);
29 	        popup.showAtLocation(parent, Gravity.CENTER, 0, 0);
30 	        popup.setTouchable(true);
31 	        popup.setTouchInterceptor((v, event) -> {
32 				// process & ignore all touch events
33 				return true;
34 			});
35 	        popup.setOnDismissListener(() -> popup = null);
36 		}
37 	}
hide()38 	public void hide() {
39 		if (popup != null) {
40 			L.d("hiding progress indicator");
41 			popup.dismiss();
42 			popup = null;
43 		}
44 	}
isShown()45 	public boolean isShown() {
46 		return popup != null && popup.isShowing();
47 	}
48 }
49