1
+ package com .willowtreeapps .hyperion .geigercounter ;
2
+
3
+ import android .support .annotation .NonNull ;
4
+ import android .support .annotation .Nullable ;
5
+ import android .view .LayoutInflater ;
6
+ import android .view .View ;
7
+ import android .view .ViewGroup ;
8
+
9
+ import com .willowtreeapps .hyperion .plugin .v1 .OnOverlayViewChangedListener ;
10
+ import com .willowtreeapps .hyperion .plugin .v1 .OverlayContainer ;
11
+ import com .willowtreeapps .hyperion .plugin .v1 .PluginModule ;
12
+
13
+ class GeigerCounterModule extends PluginModule
14
+ implements View .OnClickListener , OnOverlayViewChangedListener {
15
+
16
+ private static final String OVERLAY_TAG = "geiger_counter_overlay" ;
17
+ private OverlayContainer overlay ;
18
+ private View view ;
19
+
20
+ @ Override
21
+ protected void onCreate () {
22
+ overlay = getExtension ().getOverlayContainer ();
23
+ overlay .addOnOverlayViewChangedListener (this );
24
+ }
25
+
26
+ @ Nullable
27
+ @ Override
28
+ public View createPluginView (@ NonNull LayoutInflater layoutInflater , @ NonNull ViewGroup parent ) {
29
+ View view = layoutInflater .inflate (R .layout .hgc_item_plugin , parent , false );
30
+ view .setOnClickListener (this );
31
+
32
+ View overlayView = overlay .getOverlayView ();
33
+ view .setSelected (overlayView != null && OVERLAY_TAG .equals (overlayView .getTag ()));
34
+ this .view = view ;
35
+ return view ;
36
+ }
37
+
38
+ @ Override
39
+ protected void onDestroy () {
40
+ overlay .removeOnOverlayViewChangedListener (this );
41
+ }
42
+
43
+ @ Override
44
+ public void onClick (View v ) {
45
+ View currentOverlay = overlay .getOverlayView ();
46
+ if (currentOverlay == null || !OVERLAY_TAG .equals (currentOverlay .getTag ())) {
47
+ View newOverlay = new MeasurementOverlayView (getContext ());
48
+ newOverlay .setTag (OVERLAY_TAG );
49
+ overlay .setOverlayView (newOverlay );
50
+ } else {
51
+ overlay .removeOverlayView ();
52
+ }
53
+ }
54
+
55
+ @ Override
56
+ public void onOverlayViewChanged (@ Nullable View view ) {
57
+ this .view .setSelected (view != null && OVERLAY_TAG .equals (view .getTag ()));
58
+ }
59
+ }
0 commit comments