Skip to content

Commit ddce611

Browse files
committed
v1.0.0-beta3 patch
1 parent 0f37519 commit ddce611

File tree

11 files changed

+300
-218
lines changed

11 files changed

+300
-218
lines changed

app/build.gradle

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ plugins {
44
}
55

66
android {
7-
buildToolsVersion = '28.0.0'
87
compileSdkVersion = versions.compileSdk
98
defaultConfig {
109
applicationId 'com.camerakit.app'
@@ -16,10 +15,8 @@ android {
1615
}
1716

1817
dependencies {
19-
implementation 'com.camerakit:camerakit:1.0.0-beta3'
18+
implementation project(':camerakit')
2019
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.50'
21-
implementation 'com.camerakit:jpegkit:0.2.0-alpha1'
2220
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
2321
implementation 'com.android.support:design:28.0.0-alpha3'
24-
implementation 'de.hdodenhof:circleimageview:2.2.0'
2522
}

app/src/main/java/com/camerakit/app/MainActivity.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.graphics.Color;
66
import android.os.Bundle;
77
import android.provider.MediaStore;
8+
import android.support.annotation.NonNull;
89
import android.support.design.widget.FloatingActionButton;
910
import android.support.v7.app.AlertDialog;
1011
import android.support.v7.app.AppCompatActivity;
@@ -126,6 +127,12 @@ public void onStop() {
126127
});
127128
}
128129

130+
@Override
131+
protected void onStart() {
132+
super.onStart();
133+
cameraView.onStart();
134+
}
135+
129136
@Override
130137
public void onResume() {
131138
super.onResume();
@@ -138,6 +145,18 @@ public void onPause() {
138145
super.onPause();
139146
}
140147

148+
@Override
149+
protected void onStop() {
150+
cameraView.onStop();
151+
super.onStop();
152+
}
153+
154+
@Override
155+
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
156+
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
157+
cameraView.onRequestPermissionsResult(requestCode, permissions, grantResults);
158+
}
159+
141160
@Override
142161
public boolean onMenuItemClick(MenuItem item) {
143162
if (item.getItemId() == R.id.main_menu_about) {

camerakit/build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ android {
1515
}
1616

1717
dependencies {
18-
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.50'
19-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.22.5'
20-
implementation 'com.android.support:support-annotations:27.1.1'
21-
implementation 'com.camerakit:jpegkit:0.2.0-alpha1'
18+
api 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.50'
19+
api 'com.android.support:support-annotations:27.1.1'
20+
api 'com.camerakit:jpegkit:0.2.0-alpha1'
2221
testImplementation 'junit:junit:4.12'
2322
testImplementation 'org.mockito:mockito-core:1.10.19'
2423
}

camerakit/src/main/java/com/camerakit/CameraKitView.java

Lines changed: 106 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.support.annotation.RestrictTo;
1313
import android.support.annotation.RestrictTo.Scope;
1414
import android.util.AttributeSet;
15+
import android.util.Log;
1516
import android.view.ViewGroup;
1617

1718
import com.camerakit.type.CameraFacing;
@@ -223,6 +224,7 @@ public interface FrameCallback {
223224
private PermissionsListener mPermissionsListener;
224225

225226
private CameraPreview mCameraPreview;
227+
private boolean isStarted = false;
226228

227229
public CameraKitView(Context context) {
228230
super(context);
@@ -253,6 +255,58 @@ private void obtainAttributes(Context context, AttributeSet attrs) {
253255
mImageJpegQuality = a.getInteger(R.styleable.CameraKitView_camera_imageJpegQuality, 100);
254256

255257
a.recycle();
258+
259+
mCameraPreview = new CameraPreview(getContext());
260+
addView(mCameraPreview);
261+
mCameraPreview.setListener(new CameraPreview.Listener() {
262+
@Override
263+
public void onCameraOpened() {
264+
if (mCameraListener != null) {
265+
post(new Runnable() {
266+
@Override
267+
public void run() {
268+
mCameraListener.onOpened();
269+
}
270+
});
271+
}
272+
}
273+
274+
@Override
275+
public void onCameraClosed() {
276+
if (mCameraListener != null) {
277+
post(new Runnable() {
278+
@Override
279+
public void run() {
280+
mCameraListener.onClosed();
281+
}
282+
});
283+
}
284+
}
285+
286+
@Override
287+
public void onPreviewStarted() {
288+
if (mPreviewListener != null) {
289+
post(new Runnable() {
290+
@Override
291+
public void run() {
292+
mPreviewListener.onStart();
293+
}
294+
});
295+
}
296+
}
297+
298+
@Override
299+
public void onPreviewStopped() {
300+
if (mPreviewListener != null) {
301+
post(new Runnable() {
302+
@Override
303+
public void run() {
304+
mPreviewListener.onStop();
305+
}
306+
});
307+
}
308+
}
309+
});
256310
}
257311

258312
@Override
@@ -321,7 +375,7 @@ protected void onPinch(float ds, float dsx, float dsy) {
321375
}
322376
}
323377

324-
public void onResume() {
378+
public void onStart() {
325379
if (isInEditMode()) {
326380
return;
327381
}
@@ -340,7 +394,7 @@ public void onResume() {
340394
if (activity != null) {
341395
List<String> requestPermissions = new ArrayList<>();
342396
List<String> rationalePermissions = new ArrayList<>();
343-
for (String permission: missingPermissions) {
397+
for (String permission : missingPermissions) {
344398
if (!activity.shouldShowRequestPermissionRationale(permission)) {
345399
requestPermissions.add(permission);
346400
} else {
@@ -364,73 +418,37 @@ public void onResume() {
364418
mPermissionsListener.onPermissionsSuccess();
365419
}
366420

367-
removeAllViews();
368-
mCameraPreview = new CameraPreview(getContext());
369-
mCameraPreview.setListener(new CameraPreview.Listener() {
370-
@Override
371-
public void onCameraOpened() {
372-
if (mCameraListener != null) {
373-
post(new Runnable() {
374-
@Override
375-
public void run() {
376-
mCameraListener.onOpened();
377-
}
378-
});
379-
}
380-
}
381421

382-
@Override
383-
public void onCameraClosed() {
384-
if (mCameraListener != null) {
385-
post(new Runnable() {
386-
@Override
387-
public void run() {
388-
mCameraListener.onClosed();
389-
}
390-
});
391-
}
392-
}
422+
setFlash(mFlash);
423+
setImageMegaPixels(mImageMegaPixels);
393424

394-
@Override
395-
public void onPreviewStarted() {
396-
if (mPreviewListener != null) {
397-
post(new Runnable() {
398-
@Override
399-
public void run() {
400-
mPreviewListener.onStart();
401-
}
402-
});
403-
}
404-
}
425+
isStarted = true;
426+
if (getFacing() == CameraKit.FACING_BACK) {
427+
mCameraPreview.start(CameraFacing.BACK);
428+
} else {
429+
mCameraPreview.start(CameraFacing.FRONT);
430+
}
431+
}
405432

406-
@Override
407-
public void onPreviewStopped() {
408-
if (mPreviewListener != null) {
409-
post(new Runnable() {
410-
@Override
411-
public void run() {
412-
mPreviewListener.onStop();
413-
}
414-
});
415-
}
416-
}
417-
});
433+
public void onStop() {
434+
if (isInEditMode()) {
435+
return;
436+
}
418437

419-
setFlash(mFlash);
420-
setImageMegaPixels(mImageMegaPixels);
438+
if (isStarted) {
439+
isStarted = false;
440+
mCameraPreview.stop();
441+
}
442+
}
421443

422-
addView(mCameraPreview);
444+
public void onResume() {
445+
if (isInEditMode()) {
446+
return;
447+
}
423448

424-
mCameraPreview.post(new Runnable() {
425-
@Override
426-
public void run() {
427-
if (getFacing() == CameraKit.FACING_BACK) {
428-
mCameraPreview.start(CameraFacing.BACK);
429-
} else {
430-
mCameraPreview.start(CameraFacing.FRONT);
431-
}
432-
}
433-
});
449+
if (isStarted) {
450+
mCameraPreview.resume();
451+
}
434452
}
435453

436454
/**
@@ -441,16 +459,29 @@ public void onPause() {
441459
return;
442460
}
443461

444-
if (mCameraPreview != null) {
462+
if (isStarted) {
463+
mCameraPreview.pause();
464+
}
465+
}
466+
467+
@Override
468+
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
469+
super.onSizeChanged(w, h, oldw, oldh);
470+
if (isStarted && mCameraPreview != null && w > 0 && h > 0) {
445471
mCameraPreview.stop();
472+
if (getFacing() == CameraKit.FACING_BACK) {
473+
mCameraPreview.start(CameraFacing.BACK);
474+
} else {
475+
mCameraPreview.start(CameraFacing.FRONT);
476+
}
446477
}
447478
}
448479

449480
/**
450481
* @param callback
451482
*/
452483
public void captureImage(final ImageCallback callback) {
453-
if (mCameraPreview != null) {
484+
if (isStarted && mCameraPreview != null) {
454485
mCameraPreview.capturePhoto(new CameraPreview.PhotoCallback() {
455486
@Override
456487
public void onCapture(@NotNull final byte[] jpeg) {
@@ -592,6 +623,10 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
592623
deniedPermissions = deniedPermissions | flag;
593624
}
594625
}
626+
627+
if (!isStarted) {
628+
onStart();
629+
}
595630
}
596631
}
597632

@@ -633,14 +668,8 @@ public float getAspectRatio() {
633668
public void setFacing(@CameraKit.Facing int facing) {
634669
mFacing = facing;
635670

636-
if (mCameraPreview != null) {
637-
mCameraPreview.stop();
638-
639-
if (facing == CameraKit.FACING_BACK) {
640-
mCameraPreview.start(CameraFacing.BACK);
641-
} else {
642-
mCameraPreview.start(CameraFacing.FRONT);
643-
}
671+
if (isStarted && mCameraPreview != null) {
672+
mCameraPreview.setFacing(facing == CameraKit.FACING_BACK ? CameraFacing.BACK : CameraFacing.FRONT);
644673
}
645674
}
646675

@@ -674,7 +703,7 @@ public void toggleFacing() {
674703
public void setFlash(@CameraKit.Flash int flash) {
675704
mFlash = flash;
676705

677-
if (mCameraPreview != null) {
706+
if (isStarted && mCameraPreview != null) {
678707
switch (flash) {
679708
case CameraKit.FLASH_OFF: {
680709
mCameraPreview.setFlash(CameraFlash.OFF);
@@ -809,7 +838,7 @@ public int getPermissions() {
809838

810839
public void setImageMegaPixels(float imageMegaPixels) {
811840
mImageMegaPixels = imageMegaPixels;
812-
if (mCameraPreview != null) {
841+
if (isStarted && mCameraPreview != null) {
813842
mCameraPreview.setImageMegaPixels(mImageMegaPixels, null);
814843
}
815844
}
@@ -914,15 +943,15 @@ public ErrorListener getErrorListener() {
914943
}
915944

916945
public CameraSize getPreviewResolution() {
917-
if (mCameraPreview == null) {
946+
if (!isStarted || mCameraPreview == null) {
918947
return null;
919948
}
920949

921950
return mCameraPreview.getPreviewSize();
922951
}
923952

924953
public CameraSize getPhotoResolution() {
925-
if (mCameraPreview == null) {
954+
if (!isStarted || mCameraPreview == null) {
926955
return null;
927956
}
928957

0 commit comments

Comments
 (0)