Skip to content
6 changes: 6 additions & 0 deletions mlkit/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
compileSdkVersion 27
Expand All @@ -22,6 +24,10 @@ android {
}

dependencies {
implementation project(":internal:lintchecks")
implementation project(':internal:chooser')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.70"

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
Expand Down
21 changes: 18 additions & 3 deletions mlkit/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,16 @@
<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="barcode,face,ocr,ica" />

<activity
android:name="com.google.firebase.samples.apps.mlkit.java.ChooserActivity"/>

<activity
android:name="com.google.firebase.samples.apps.mlkit.kotlin.ChooserActivity"/>


<activity
android:name="com.google.firebase.samples.apps.mlkit.ChooserActivity"
android:name="com.google.firebase.samples.apps.mlkit.EntryChoiceActivity"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
Expand All @@ -27,12 +35,19 @@
</intent-filter>
</activity>

<activity android:name=".LivePreviewActivity" android:exported="true">

<activity android:name=".java.LivePreviewActivity" android:exported="true">
</activity>

<activity android:name=".StillImageActivity"
<activity android:name=".kotlin.LivePreviewActivity" android:exported="true"/>


<activity android:name=".java.StillImageActivity"
android:exported="true">
</activity>

<activity android:name=".kotlin.StillImageActivity"
android:exported="true"/>
</application>

</manifest>
25 changes: 25 additions & 0 deletions mlkit/app/src/main/java/EntryChoiceActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.google.firebase.samples.apps.mlkit

import android.content.Intent
import com.firebase.example.internal.BaseEntryChoiceActivity
import com.firebase.example.internal.Choice

class EntryChoiceActivity : BaseEntryChoiceActivity() {

override fun getChoices(): List<Choice> {
return listOf(
Choice(
"Java",
"Run the Firebase ML Kit quickstart written in Java.",
Intent(this,
com.google.firebase.samples.apps.mlkit.java.ChooserActivity::class.java)),
Choice(
"Kotlin",
"Run the Firebase ML Kit quickstart written in Kotlin.",
Intent(
this,
com.google.firebase.samples.apps.mlkit.kotlin.ChooserActivity::class.java))
)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.common;

import android.Manifest;
import android.annotation.SuppressLint;
Expand Down Expand Up @@ -577,7 +577,7 @@ public void onPreviewFrame(byte[] data, Camera camera) {
}
}

void setMachineLearningFrameProcessor(VisionImageProcessor processor) {
public void setMachineLearningFrameProcessor(VisionImageProcessor processor) {
synchronized (processorLock) {
cleanScreen();
if (frameProcessor != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.common;

import android.annotation.SuppressLint;
import android.content.Context;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.common;

/** Describing a frame info. */
public class FrameMetadata {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.common;

import android.content.Context;
import android.graphics.Canvas;
import android.hardware.camera2.CameraCharacteristics;
import android.util.AttributeSet;
import android.view.View;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.common;

import android.graphics.Bitmap;
import android.media.Image;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.java;

import android.content.Context;
import android.content.Intent;
Expand All @@ -31,6 +31,8 @@
import android.widget.ListView;
import android.widget.TextView;

import com.google.firebase.samples.apps.mlkit.R;

import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -61,7 +63,7 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_chooser);

// Set up ListView and Adapter
ListView listView = (ListView) findViewById(R.id.test_activity_list_view);
ListView listView = (ListView) findViewById(R.id.testActivityListView);

MyArrayAdapter adapter = new MyArrayAdapter(this, android.R.layout.simple_list_item_2, CLASSES);
adapter.setDescriptionIds(DESCRIPTION_IDS);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.java;

import android.content.Context;
import android.content.pm.PackageInfo;
Expand All @@ -32,11 +32,15 @@

import com.google.android.gms.common.annotation.KeepName;
import com.google.firebase.ml.common.FirebaseMLException;
import com.google.firebase.samples.apps.mlkit.barcodescanning.BarcodeScanningProcessor;
import com.google.firebase.samples.apps.mlkit.custommodel.CustomImageClassifierProcessor;
import com.google.firebase.samples.apps.mlkit.facedetection.FaceDetectionProcessor;
import com.google.firebase.samples.apps.mlkit.imagelabeling.ImageLabelingProcessor;
import com.google.firebase.samples.apps.mlkit.textrecognition.TextRecognitionProcessor;
import com.google.firebase.samples.apps.mlkit.R;
import com.google.firebase.samples.apps.mlkit.common.CameraSource;
import com.google.firebase.samples.apps.mlkit.common.CameraSourcePreview;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.java.barcodescanning.BarcodeScanningProcessor;
import com.google.firebase.samples.apps.mlkit.java.custommodel.CustomImageClassifierProcessor;
import com.google.firebase.samples.apps.mlkit.java.facedetection.FaceDetectionProcessor;
import com.google.firebase.samples.apps.mlkit.java.imagelabeling.ImageLabelingProcessor;
import com.google.firebase.samples.apps.mlkit.java.textrecognition.TextRecognitionProcessor;

import java.io.IOException;
import java.util.ArrayList;
Expand Down Expand Up @@ -93,7 +97,7 @@ protected void onCreate(Bundle savedInstanceState) {
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(this);

ToggleButton facingSwitch = (ToggleButton) findViewById(R.id.facingswitch);
ToggleButton facingSwitch = (ToggleButton) findViewById(R.id.facingSwitch);
facingSwitch.setOnCheckedChangeListener(this);

if (allPermissionsGranted()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.java;

import android.content.ContentValues;
import android.content.Intent;
Expand All @@ -37,12 +37,15 @@
import android.widget.Spinner;

import com.google.android.gms.common.annotation.KeepName;
import com.google.firebase.samples.apps.mlkit.cloudimagelabeling.CloudImageLabelingProcessor;
import com.google.firebase.samples.apps.mlkit.cloudlandmarkrecognition.CloudLandmarkRecognitionProcessor;
import com.google.firebase.samples.apps.mlkit.cloudtextrecognition.CloudDocumentTextRecognitionProcessor;
import com.google.firebase.samples.apps.mlkit.R;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.common.VisionImageProcessor;
import com.google.firebase.samples.apps.mlkit.java.cloudimagelabeling.CloudImageLabelingProcessor;
import com.google.firebase.samples.apps.mlkit.java.cloudlandmarkrecognition.CloudLandmarkRecognitionProcessor;
import com.google.firebase.samples.apps.mlkit.java.cloudtextrecognition.CloudDocumentTextRecognitionProcessor;


import com.google.firebase.samples.apps.mlkit.cloudtextrecognition.CloudTextRecognitionProcessor;
import com.google.firebase.samples.apps.mlkit.java.cloudtextrecognition.CloudTextRecognitionProcessor;

import java.io.IOException;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit;
package com.google.firebase.samples.apps.mlkit.java;

import android.graphics.Bitmap;
import android.media.Image;
Expand All @@ -22,6 +22,9 @@
import com.google.android.gms.tasks.Task;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.ml.vision.common.FirebaseVisionImageMetadata;
import com.google.firebase.samples.apps.mlkit.common.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.common.VisionImageProcessor;

import java.nio.ByteBuffer;
import java.util.concurrent.atomic.AtomicBoolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.barcodescanning;
package com.google.firebase.samples.apps.mlkit.java.barcodescanning;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;

import com.google.firebase.ml.vision.barcode.FirebaseVisionBarcode;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay.Graphic;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay.Graphic;

/** Graphic instance for rendering Barcode position and content information in an overlay view. */
public class BarcodeGraphic extends Graphic {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.barcodescanning;
package com.google.firebase.samples.apps.mlkit.java.barcodescanning;

import android.support.annotation.NonNull;
import android.util.Log;
Expand All @@ -21,9 +21,9 @@
import com.google.firebase.ml.vision.barcode.FirebaseVisionBarcode;
import com.google.firebase.ml.vision.barcode.FirebaseVisionBarcodeDetector;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.samples.apps.mlkit.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.VisionProcessorBase;
import com.google.firebase.samples.apps.mlkit.common.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.java.VisionProcessorBase;

import java.io.IOException;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.cloudimagelabeling;
package com.google.firebase.samples.apps.mlkit.java.cloudimagelabeling;

import android.support.annotation.NonNull;
import android.util.Log;
Expand All @@ -22,9 +22,9 @@
import com.google.firebase.ml.vision.cloud.label.FirebaseVisionCloudLabel;
import com.google.firebase.ml.vision.cloud.label.FirebaseVisionCloudLabelDetector;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.samples.apps.mlkit.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.VisionProcessorBase;
import com.google.firebase.samples.apps.mlkit.common.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.java.VisionProcessorBase;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.cloudimagelabeling;
package com.google.firebase.samples.apps.mlkit.java.cloudimagelabeling;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;

import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay.Graphic;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay.Graphic;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.cloudlandmarkrecognition;
package com.google.firebase.samples.apps.mlkit.java.cloudlandmarkrecognition;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;

import com.google.firebase.ml.vision.cloud.landmark.FirebaseVisionCloudLandmark;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay.Graphic;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay.Graphic;

/** Graphic instance for rendering detected landmark. */
public class CloudLandmarkGraphic extends Graphic {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.firebase.samples.apps.mlkit.cloudlandmarkrecognition;
package com.google.firebase.samples.apps.mlkit.java.cloudlandmarkrecognition;

import android.support.annotation.NonNull;
import android.util.Log;
Expand All @@ -22,9 +22,9 @@
import com.google.firebase.ml.vision.cloud.landmark.FirebaseVisionCloudLandmark;
import com.google.firebase.ml.vision.cloud.landmark.FirebaseVisionCloudLandmarkDetector;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.samples.apps.mlkit.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.VisionProcessorBase;
import com.google.firebase.samples.apps.mlkit.common.FrameMetadata;
import com.google.firebase.samples.apps.mlkit.common.GraphicOverlay;
import com.google.firebase.samples.apps.mlkit.java.VisionProcessorBase;

import java.util.List;

Expand Down
Loading