mirror of
https://github.com/lacerta-doc/Lacerta.git
synced 2024-11-22 16:03:15 +00:00
更新機能 WIP
This commit is contained in:
parent
dbdb2b76d7
commit
afb40170ca
|
@ -35,6 +35,8 @@ import one.nem.lacerta.data.Document;
|
||||||
import one.nem.lacerta.data.LacertaLibrary;
|
import one.nem.lacerta.data.LacertaLibrary;
|
||||||
import one.nem.lacerta.model.document.DocumentDetail;
|
import one.nem.lacerta.model.document.DocumentDetail;
|
||||||
import one.nem.lacerta.model.document.DocumentMeta;
|
import one.nem.lacerta.model.document.DocumentMeta;
|
||||||
|
import one.nem.lacerta.model.document.page.Page;
|
||||||
|
import one.nem.lacerta.processor.DocumentProcessor;
|
||||||
import one.nem.lacerta.processor.factory.DocumentProcessorFactory;
|
import one.nem.lacerta.processor.factory.DocumentProcessorFactory;
|
||||||
import one.nem.lacerta.utils.LacertaLogger;
|
import one.nem.lacerta.utils.LacertaLogger;
|
||||||
import one.nem.lacerta.vcs.factory.LacertaVcsFactory;
|
import one.nem.lacerta.vcs.factory.LacertaVcsFactory;
|
||||||
|
@ -73,7 +75,9 @@ public class ScannerManagerActivity extends AppCompatActivity {
|
||||||
// Variables
|
// Variables
|
||||||
private ArrayList<Bitmap> croppedImages = new ArrayList<>();
|
private ArrayList<Bitmap> croppedImages = new ArrayList<>();
|
||||||
|
|
||||||
private boolean single = false;
|
private boolean update = false;
|
||||||
|
private String documentId;
|
||||||
|
private int index = 0;
|
||||||
|
|
||||||
View view;
|
View view;
|
||||||
|
|
||||||
|
@ -104,7 +108,7 @@ public class ScannerManagerActivity extends AppCompatActivity {
|
||||||
null
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
DocumentScanner documentScannerSingle = new DocumentScanner( // TODO-rca: ひどすぎるのでなんとかする
|
DocumentScanner documentScannerUpdate = new DocumentScanner( // TODO-rca: ひどすぎるのでなんとかする
|
||||||
this,
|
this,
|
||||||
(croppedImageResults) -> {
|
(croppedImageResults) -> {
|
||||||
logger.debug(TAG, "croppedImage size: " + croppedImageResults.size());
|
logger.debug(TAG, "croppedImage size: " + croppedImageResults.size());
|
||||||
|
@ -160,11 +164,12 @@ public class ScannerManagerActivity extends AppCompatActivity {
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
Bundle bundle = intent.getExtras();
|
Bundle bundle = intent.getExtras();
|
||||||
if (bundle != null) {
|
if (bundle != null) {
|
||||||
this.single = bundle.getBoolean("single", false);
|
update = bundle.getBoolean("update", false);
|
||||||
|
documentId = bundle.getString("documentId");
|
||||||
|
index = bundle.getInt("index", 0);
|
||||||
}
|
}
|
||||||
|
if (this.update) {
|
||||||
if (this.single) {
|
documentScanner = documentScannerUpdate;
|
||||||
documentScanner = documentScannerSingle;
|
|
||||||
}
|
}
|
||||||
documentScanner.startScan();
|
documentScanner.startScan();
|
||||||
// Init
|
// Init
|
||||||
|
@ -251,6 +256,22 @@ public class ScannerManagerActivity extends AppCompatActivity {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updatePage() {
|
||||||
|
logger.debug(TAG, "updatePage");
|
||||||
|
// Deprecatedだが、中断機能が存在しないので操作をブロックする目的で(意図的に)使用
|
||||||
|
ProgressDialog dialog = new ProgressDialog(this);
|
||||||
|
dialog.setMessage("保存中..."); // TODO-rca: テキストをリソースに移動
|
||||||
|
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
|
||||||
|
dialog.setCancelable(false);
|
||||||
|
dialog.show();
|
||||||
|
document.getDocument(documentId).thenAccept((documentDetail) -> {
|
||||||
|
DocumentProcessor documentProcessor = documentProcessorFactory.create(documentDetail);
|
||||||
|
documentProcessor.updatePageAtIndex(croppedImages.get(0), index);
|
||||||
|
document.updateDocument(documentProcessor.getDocumentDetail()).join();
|
||||||
|
dialog.dismiss();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void insertToExistDocument() {
|
private void insertToExistDocument() {
|
||||||
logger.debug(TAG, "insertToExistDocument");
|
logger.debug(TAG, "insertToExistDocument");
|
||||||
LacertaFilePickerDialog dialog = new LacertaFilePickerDialog();
|
LacertaFilePickerDialog dialog = new LacertaFilePickerDialog();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package one.nem.lacerta.component.viewer;
|
package one.nem.lacerta.component.viewer;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
@ -16,6 +17,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import dagger.hilt.android.AndroidEntryPoint;
|
import dagger.hilt.android.AndroidEntryPoint;
|
||||||
|
import one.nem.lacerta.component.scanner.ScannerManagerActivity;
|
||||||
import one.nem.lacerta.data.Document;
|
import one.nem.lacerta.data.Document;
|
||||||
import one.nem.lacerta.data.LacertaLibrary;
|
import one.nem.lacerta.data.LacertaLibrary;
|
||||||
import one.nem.lacerta.utils.LacertaLogger;
|
import one.nem.lacerta.utils.LacertaLogger;
|
||||||
|
@ -107,7 +109,12 @@ public class ViewerBodyFragment extends Fragment {
|
||||||
builder.setTitle("ページを更新しますか?");
|
builder.setTitle("ページを更新しますか?");
|
||||||
|
|
||||||
builder.setPositiveButton("更新", (dialog, which) -> {
|
builder.setPositiveButton("更新", (dialog, which) -> {
|
||||||
// update
|
// ScannerをIntent
|
||||||
|
Intent intent = new Intent(getActivity(), ScannerManagerActivity.class);
|
||||||
|
intent.putExtra("update", true);
|
||||||
|
intent.putExtra("documentId", documentId);
|
||||||
|
intent.putExtra("index", position);
|
||||||
|
startActivity(intent);
|
||||||
});
|
});
|
||||||
builder.setNegativeButton("キャンセル", (dialog, which) -> {
|
builder.setNegativeButton("キャンセル", (dialog, which) -> {
|
||||||
// cancel
|
// cancel
|
||||||
|
|
Loading…
Reference in New Issue
Block a user