Commit e73b5f11 authored by wanglei's avatar wanglei

...

parent 23d3e3d9
......@@ -21,15 +21,18 @@ import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
import com.base.pdfviewerscannerwhite.ui.document.ppt.PptActivity
import com.base.pdfviewerscannerwhite.ui.document.word.WordActivity
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission
import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import com.base.pdfviewerscannerwhite.utils.IntentShareUtils.shareMutDocuments
import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import com.base.pdfviewerscannerwhite.utils.updateMediaStore
import java.io.File
class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private val TAG="MainActivity"
private val TAG = "MainActivity"
lateinit var mainPresenter: MainPresenter
override val binding: ActivityMain2Binding by lazy {
ActivityMain2Binding.inflate(layoutInflater)
......@@ -49,8 +52,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private var currentFragment: Fragment = documentFragment
override fun initView() {
LogEx.logDebug(TAG,"initView")
LogEx.logDebug(TAG, "initView")
mainPresenter = MainPresenter(this, this, lifecycleScope)
mainPresenter.initScannerLauncher(this)
}
......@@ -67,7 +72,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
LogEx.logDebug(TAG,"onSaveInstanceState")
LogEx.logDebug(TAG, "onSaveInstanceState")
}
var isDocumentAdd: Boolean = false
......@@ -175,6 +180,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
binding.llShare.setOnClickListener {
shareDocument()
}
binding.ivScan.setOnClickListener {
mainPresenter.starGmsScan(this)
}
}
......@@ -222,6 +230,18 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
override fun handleActivityGmsScanResult(imageUri: Uri, pdfUri: Uri) {
// LogEx.logDebug(TAG, "imageUri=$imageUri")
LogEx.logDebug(TAG, "pdfUri=$pdfUri")
val file = File(pdfUri.toString().replace("file://", ""))
if (file.exists()) {
// binding.tvTest.text = "imageUri=$imageUri\n\n\n\npdfUri=$pdfUri"
showDocumentRenameDialog(file.name) {
val newFile = File(mainPresenter.getDocumentAppDir(), "$it.pdf")
mainPresenter.copyFile(file, newFile)
this.updateMediaStore()
refreshPageList()
}
}
}
......
......@@ -4,11 +4,13 @@ import android.app.Activity
import android.content.Context
import android.content.IntentSender
import android.net.Uri
import android.os.Environment
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.IntentSenderRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleCoroutineScope
import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE
......@@ -39,6 +41,13 @@ class MainPresenter(
val lifecycleScope: LifecycleCoroutineScope
) {
fun getDocumentAppDir(): File {
val appDir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), context.packageName)
if (!appDir.exists())
appDir.exists()
return appDir
}
//所有fragment的数据,都从这里取
val pdfDocuments = arrayListOf<DocumentBean>()
val wordDocuments = arrayListOf<DocumentBean>()
......@@ -372,4 +381,10 @@ class MainPresenter(
}
}
fun copyFile(file: File, newFile: File) {
runCatching {
file.copyTo(newFile, true)
}
}
}
\ No newline at end of file
......@@ -243,5 +243,16 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:visibility="gone"
android:id="@+id/tv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:background="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<resources>
<string name="app_name">PDF Viewer &amp; Scanner</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<!-- Strings used for fragments for navigation -->
<string name="first_fragment_label">First Fragment</string>
<string name="second_fragment_label">Second Fragment</string>
<string name="next">Next</string>
<string name="previous">Previous</string>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name" tools:ignore="MissingTranslation">PDF Viewer &amp; Scanner</string>
<string name="next" tools:ignore="MissingTranslation">Next</string>
<string name="previous" tools:ignore="MissingTranslation">Previous</string>
<string name="lorem_ipsum">
<string name="lorem_ipsum" tools:ignore="MissingTranslation">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in scelerisque sem. Mauris volutpat, dolor id interdum
ullamcorper, risus dolor egestas lectus, sit amet mattis purus dui nec risus. Maecenas non sodales nisi, vel dictum dolor.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse blandit eleifend diam,
......
......@@ -33,8 +33,8 @@ public class ChoosePDFActivity extends ListActivity {
static private File mDirectory;
static private Map<String, Integer> mPositions = new HashMap<String, Integer>();
private File mParent;
private File [] mDirs;
private File [] mFiles;
private File[] mDirs;
private File[] mFiles;
private Handler mHandler;
private Runnable mUpdateFiles;
private ChoosePDFAdapter adapter;
......@@ -50,13 +50,12 @@ public class ChoosePDFActivity extends ListActivity {
String storageState = Environment.getExternalStorageState();
if (!Environment.MEDIA_MOUNTED.equals(storageState)
&& !Environment.MEDIA_MOUNTED_READ_ONLY.equals(storageState))
{
&& !Environment.MEDIA_MOUNTED_READ_ONLY.equals(storageState)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.no_media_warning);
builder.setMessage(R.string.no_media_hint);
AlertDialog alert = builder.create();
alert.setButton(AlertDialog.BUTTON_POSITIVE,getString(R.string.dismiss),
alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.dismiss),
new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
......@@ -78,8 +77,8 @@ public class ChoosePDFActivity extends ListActivity {
mUpdateFiles = new Runnable() {
public void run() {
Resources res = getResources();
String appName = res.getString(R.string.app_name);
String version = res.getString(R.string.version);
String appName = "app_name";
String version = "1.0";
String title = res.getString(R.string.picker_title_App_Ver_Dir);
setTitle(String.format(title, appName, version, mDirectory));
......@@ -204,7 +203,7 @@ public class ChoosePDFActivity extends ListActivity {
position -= mDirs.length;
Uri uri = Uri.fromFile(mFiles[position]);
Intent intent = new Intent(this,MuPDFActivity.class);
Intent intent = new Intent(this, MuPDFActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
switch (mPurpose) {
......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="accept">接受</string>
<string name="app_name">MuPDF</string>
<string name="cancel">取消</string>
<string name="cannot_open_buffer">无法打开缓冲器</string>
<string name="cannot_open_document">无法打开文档</string>
......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MuPDF</string>
<string name="version">1.9 (git build)</string>
<string name="no_media_warning">Storage media not present</string>
<string name="no_media_hint">Sharing the storage media with a PC can make it inaccessible</string>
<string name="cancel">Cancel</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment