Skip to content

Commit

Permalink
Merge branch 'BSDK-258-create-host-fragmets' of github.com:gini/gini-…
Browse files Browse the repository at this point in the history
…mobile-android into BSDK-258-create-host-fragmets
  • Loading branch information
abolfazlimahdi committed Jan 15, 2024
2 parents f686f78 + 34814cd commit 5658ada
Show file tree
Hide file tree
Showing 47 changed files with 1,101 additions and 1,038 deletions.
28 changes: 0 additions & 28 deletions capture-sdk/sdk/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,40 +30,12 @@
android:exported="false"
android:label="@string/gc_title_onboarding"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name="net.gini.android.capture.internal.fileimport.FileChooserActivity"
android:exported="false"
android:theme="@style/GiniCaptureTheme.Chooser" />
<activity
android:name="net.gini.android.capture.help.HelpActivity"
android:exported="false"
android:label="@string/gc_title_help"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name="net.gini.android.capture.help.PhotoTipsActivity"
android:exported="false"
android:label="@string/gc_title_photo_tips"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name="net.gini.android.capture.help.SupportedFormatsActivity"
android:exported="false"
android:label="@string/gc_title_supported_formats"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name="net.gini.android.capture.help.FileImportActivity"
android:exported="false"
android:label="@string/gc_title_file_import"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name="net.gini.android.capture.review.multipage.MultiPageReviewActivity"
android:exported="false"
android:label="@string/gc_title_review"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/GiniCaptureTheme" />
<activity
android:name=".review.zoom.ZoomInPreviewActivity"
android:exported="false"
android:theme="@style/GiniCaptureTheme" />

<meta-data
android:name="com.google.android.gms.version"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import net.gini.android.capture.analysis.AnalysisActivity;
import net.gini.android.capture.document.GiniCaptureMultiPageDocument;
import net.gini.android.capture.document.QRCodeDocument;
import net.gini.android.capture.help.HelpActivity;
import net.gini.android.capture.internal.util.ContextHelper;
import net.gini.android.capture.network.model.GiniCaptureCompoundExtraction;
import net.gini.android.capture.network.model.GiniCaptureReturnReason;
Expand Down Expand Up @@ -253,22 +252,13 @@ public boolean onCreateOptionsMenu(final Menu menu) {
*/
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
if (item.getItemId() == R.id.gc_action_show_onboarding) {
startHelpActivity();
return true;
} else if (item.getItemId() == android.R.id.home) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}

private void startHelpActivity() {
final Intent intent = new Intent(this, HelpActivity.class);
startActivity(intent);
trackCameraScreenEvent(CameraScreenEvent.HELP);
}

@VisibleForTesting
void startOnboardingActivity() {
if (mOnboardingShown) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,6 @@ public void onDestroy() {
mFragmentImpl.onDestroy();
}

@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
final boolean handled = mFragmentImpl.onActivityResult(requestCode, resultCode, data);
if (!handled) {
super.onActivityResult(requestCode, resultCode, data);
}
}

@Override
public void setListener(@NonNull final CameraFragmentListener listener) {
if (mFragmentImpl != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;

import net.gini.android.capture.AsyncCallback;
import net.gini.android.capture.Document;
Expand All @@ -48,7 +49,7 @@
import net.gini.android.capture.document.QRCodeDocument;
import net.gini.android.capture.error.ErrorActivity;
import net.gini.android.capture.error.ErrorType;
import net.gini.android.capture.help.HelpActivity;
import net.gini.android.capture.help.HelpFragment;
import net.gini.android.capture.internal.camera.api.CameraException;
import net.gini.android.capture.internal.camera.api.CameraInterface;
import net.gini.android.capture.internal.camera.api.OldCameraController;
Expand All @@ -57,7 +58,8 @@
import net.gini.android.capture.internal.camera.photo.Photo;
import net.gini.android.capture.internal.camera.photo.PhotoEdit;
import net.gini.android.capture.internal.camera.view.QRCodePopup;
import net.gini.android.capture.internal.fileimport.FileChooserActivity;
import net.gini.android.capture.internal.fileimport.FileChooserFragment;
import net.gini.android.capture.internal.fileimport.FileChooserResult;
import net.gini.android.capture.internal.iban.IBANRecognizerFilter;
import net.gini.android.capture.internal.iban.IBANRecognizerImpl;
import net.gini.android.capture.internal.network.AnalysisNetworkRequestResult;
Expand Down Expand Up @@ -368,7 +370,6 @@ View onCreateView(final LayoutInflater inflater, final ViewGroup container,
if (!GiniCapture.getInstance().isQRCodeScanningEnabled()) {
setQRDisabledTexts();
}

return view;
}

Expand Down Expand Up @@ -436,6 +437,30 @@ public void onStart() {
} else {
showNoPermissionView();
}

setFileChooserFragmentResultListener();
}


private void setFileChooserFragmentResultListener() {
mFragment.getChildFragmentManager().setFragmentResultListener(FileChooserFragment.REQUEST_KEY, mFragment.getViewLifecycleOwner(), (requestKey, result) -> {
final FileChooserResult fileChooserResult = result.getParcelable(FileChooserFragment.RESULT_KEY);
if (fileChooserResult != null) {
handleFileChooserResult(fileChooserResult);
}
hideFileChooser();
});
}

public void handleFileChooserResult(@NonNull FileChooserResult result) {
if (result instanceof FileChooserResult.FilesSelected) {
importDocumentFromIntent(((FileChooserResult.FilesSelected) result).getDataIntent());
} else if (result instanceof FileChooserResult.Error) {
final GiniCaptureError error = ((FileChooserResult.Error) result).getError();
final String message = "Document import failed: " + error.getMessage();
LOG.error(message);
showGenericInvalidFileError(ErrorType.FILE_IMPORT_GENERIC);
}
}

private void checkGiniCaptureInstance() {
Expand Down Expand Up @@ -778,13 +803,18 @@ private void setmIsTakingPicture(boolean mIsTakingPicture) {
}
}

private void startHelpActivity() {

if (mFragment.getActivity() == null || mIsTakingPicture)
@VisibleForTesting
void startHelpActivity() {
if (mIsTakingPicture) {
return;
}

mFragment.getChildFragmentManager()
.beginTransaction()
.add(R.id.gc_fragment_container, HelpFragment.newInstance(), HelpFragment.class.getName())
.addToBackStack(null)
.commit();

final Intent intent = new Intent(mFragment.getActivity(), HelpActivity.class);
mFragment.getActivity().startActivity(intent);
trackCameraScreenEvent(CameraScreenEvent.HELP);
}

Expand Down Expand Up @@ -822,9 +852,12 @@ private void initViews() {
}

private boolean isDocumentImportEnabled(@NonNull final Activity activity) {
// return getDocumentImportEnabledFileTypes()
// != DocumentImportEnabledFileTypes.NONE
// && FileChooserActivity.canChooseFiles(activity);
return getDocumentImportEnabledFileTypes()
!= DocumentImportEnabledFileTypes.NONE
&& FileChooserActivity.canChooseFiles(activity);
&& FileChooserFragment.canChooseFiles(activity);
}

private void setInputHandlers() {
Expand Down Expand Up @@ -1006,39 +1039,39 @@ private void showFileChooser() {
if (activity == null) {
return;
}
final Intent fileChooserIntent = FileChooserActivity.createIntent(activity);
// final Intent fileChooserIntent = FileChooserActivity.createIntent(activity);
// final DocumentImportEnabledFileTypes enabledFileTypes;
// if (mInMultiPageState) {
// enabledFileTypes = DocumentImportEnabledFileTypes.IMAGES;
// } else {
// enabledFileTypes = getDocumentImportEnabledFileTypes();
// }
// fileChooserIntent.putExtra(FileChooserActivity.EXTRA_IN_DOCUMENT_IMPORT_FILE_TYPES,
// enabledFileTypes);
// fileChooserIntent.setExtrasClassLoader(CameraFragmentImpl.class.getClassLoader());
// mFragment.startActivityForResult(fileChooserIntent, REQ_CODE_CHOOSE_FILE);

final DocumentImportEnabledFileTypes enabledFileTypes;
if (mInMultiPageState) {
enabledFileTypes = DocumentImportEnabledFileTypes.IMAGES;
} else {
enabledFileTypes = getDocumentImportEnabledFileTypes();
}
fileChooserIntent.putExtra(FileChooserActivity.EXTRA_IN_DOCUMENT_IMPORT_FILE_TYPES,
enabledFileTypes);
fileChooserIntent.setExtrasClassLoader(CameraFragmentImpl.class.getClassLoader());
mFragment.startActivityForResult(fileChooserIntent, REQ_CODE_CHOOSE_FILE);
}

boolean onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if (requestCode == REQ_CODE_CHOOSE_FILE) {
if (resultCode == RESULT_OK) {
importDocumentFromIntent(data);
} else if (resultCode != RESULT_CANCELED) {
final String message;
if (resultCode == FileChooserActivity.RESULT_ERROR) {
final GiniCaptureError error = data.getParcelableExtra(
FileChooserActivity.EXTRA_OUT_ERROR);
message = "Document import failed: " + error.getMessage();
} else {
message = "Document import failed: unknown result code " + resultCode;
}
LOG.error(message);
showGenericInvalidFileError(ErrorType.FILE_IMPORT_GENERIC);
}
return true;
}
final FileChooserFragment fileChooserFragment = FileChooserFragment.newInstance(enabledFileTypes);
mFragment.getChildFragmentManager()
.beginTransaction()
.add(R.id.gc_fragment_container, fileChooserFragment, FileChooserFragment.class.getName())
.commit();
}

return false;
private void hideFileChooser() {
final Fragment fragment = mFragment.getChildFragmentManager().findFragmentByTag(FileChooserFragment.class.getName());
if (fragment != null) {
mFragment.getChildFragmentManager()
.beginTransaction()
.remove(fragment)
.commit();
}
}

private void importDocumentFromIntent(@NonNull final Intent data) {
Expand Down

This file was deleted.

Loading

0 comments on commit 5658ada

Please sign in to comment.