Skip to content

Commit 131f4db

Browse files
committed
Duplicate the measurement plugin as a Geiger counter plugin
1 parent 8159dd3 commit 131f4db

File tree

17 files changed

+612
-1
lines changed

17 files changed

+612
-1
lines changed

hyperion-geiger-counter/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

hyperion-geiger-counter/build.gradle

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apply plugin: 'com.android.library'
2+
apply from: '../publish.gradle'
3+
4+
group = project.libraryGroup
5+
version = project.libraryVersion
6+
7+
android {
8+
compileSdkVersion project.compileSdkVersion
9+
buildToolsVersion project.buildToolsVersion
10+
11+
defaultConfig {
12+
minSdkVersion project.minSdkVersion
13+
targetSdkVersion project.targetSdkVersion
14+
versionCode buildVersionCode()
15+
versionName version
16+
17+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
18+
}
19+
20+
lintOptions {
21+
abortOnError false
22+
}
23+
24+
resourcePrefix 'hgc_'
25+
}
26+
27+
dependencies {
28+
api project(':hyperion-plugin')
29+
implementation "com.android.support:appcompat-v7:${project.versionSupportLibrary}"
30+
annotationProcessor "com.google.auto.service:auto-service:${project.versionAutoService}"
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<manifest package="com.willowtreeapps.hyperion.geigercounter"/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
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+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.willowtreeapps.hyperion.geigercounter;
2+
3+
import com.google.auto.service.AutoService;
4+
import com.willowtreeapps.hyperion.plugin.v1.Plugin;
5+
import com.willowtreeapps.hyperion.plugin.v1.PluginModule;
6+
7+
@AutoService(Plugin.class)
8+
public class GeigerCounterPlugin extends Plugin {
9+
10+
@Override
11+
public PluginModule createPluginModule() {
12+
return new GeigerCounterModule();
13+
}
14+
15+
}

0 commit comments

Comments
 (0)