Commit e73b5f11 authored by wanglei's avatar wanglei

...

parent 23d3e3d9
...@@ -21,15 +21,18 @@ import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity ...@@ -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.ppt.PptActivity
import com.base.pdfviewerscannerwhite.ui.document.word.WordActivity import com.base.pdfviewerscannerwhite.ui.document.word.WordActivity
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog 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.DialogView.showStoragePermission
import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import com.base.pdfviewerscannerwhite.utils.IntentShareUtils.shareMutDocuments import com.base.pdfviewerscannerwhite.utils.IntentShareUtils.shareMutDocuments
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import com.base.pdfviewerscannerwhite.utils.updateMediaStore
import java.io.File
class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private val TAG="MainActivity" private val TAG = "MainActivity"
lateinit var mainPresenter: MainPresenter lateinit var mainPresenter: MainPresenter
override val binding: ActivityMain2Binding by lazy { override val binding: ActivityMain2Binding by lazy {
ActivityMain2Binding.inflate(layoutInflater) ActivityMain2Binding.inflate(layoutInflater)
...@@ -49,8 +52,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -49,8 +52,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private var currentFragment: Fragment = documentFragment private var currentFragment: Fragment = documentFragment
override fun initView() { override fun initView() {
LogEx.logDebug(TAG,"initView")
LogEx.logDebug(TAG, "initView")
mainPresenter = MainPresenter(this, this, lifecycleScope) mainPresenter = MainPresenter(this, this, lifecycleScope)
mainPresenter.initScannerLauncher(this)
} }
...@@ -67,7 +72,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -67,7 +72,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
override fun onSaveInstanceState(outState: Bundle) { override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState) super.onSaveInstanceState(outState)
LogEx.logDebug(TAG,"onSaveInstanceState") LogEx.logDebug(TAG, "onSaveInstanceState")
} }
var isDocumentAdd: Boolean = false var isDocumentAdd: Boolean = false
...@@ -175,6 +180,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -175,6 +180,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
binding.llShare.setOnClickListener { binding.llShare.setOnClickListener {
shareDocument() shareDocument()
} }
binding.ivScan.setOnClickListener {
mainPresenter.starGmsScan(this)
}
} }
...@@ -222,6 +230,18 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -222,6 +230,18 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
override fun handleActivityGmsScanResult(imageUri: Uri, pdfUri: Uri) { 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 ...@@ -4,11 +4,13 @@ import android.app.Activity
import android.content.Context import android.content.Context
import android.content.IntentSender import android.content.IntentSender
import android.net.Uri import android.net.Uri
import android.os.Environment
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.IntentSenderRequest import androidx.activity.result.IntentSenderRequest
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.LifecycleCoroutineScope
import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.ConstObject import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE
...@@ -39,6 +41,13 @@ class MainPresenter( ...@@ -39,6 +41,13 @@ class MainPresenter(
val lifecycleScope: LifecycleCoroutineScope val lifecycleScope: LifecycleCoroutineScope
) { ) {
fun getDocumentAppDir(): File {
val appDir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), context.packageName)
if (!appDir.exists())
appDir.exists()
return appDir
}
//所有fragment的数据,都从这里取 //所有fragment的数据,都从这里取
val pdfDocuments = arrayListOf<DocumentBean>() val pdfDocuments = arrayListOf<DocumentBean>()
val wordDocuments = arrayListOf<DocumentBean>() val wordDocuments = arrayListOf<DocumentBean>()
...@@ -372,4 +381,10 @@ class MainPresenter( ...@@ -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 @@ ...@@ -243,5 +243,16 @@
</androidx.constraintlayout.widget.ConstraintLayout> </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> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<resources> <resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name">PDF Viewer &amp; Scanner</string> <string name="app_name" tools:ignore="MissingTranslation">PDF Viewer &amp; Scanner</string>
<!-- TODO: Remove or change this placeholder text --> <string name="next" tools:ignore="MissingTranslation">Next</string>
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="previous" tools:ignore="MissingTranslation">Previous</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>
<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 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. 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, 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 { ...@@ -33,8 +33,8 @@ public class ChoosePDFActivity extends ListActivity {
static private File mDirectory; static private File mDirectory;
static private Map<String, Integer> mPositions = new HashMap<String, Integer>(); static private Map<String, Integer> mPositions = new HashMap<String, Integer>();
private File mParent; private File mParent;
private File [] mDirs; private File[] mDirs;
private File [] mFiles; private File[] mFiles;
private Handler mHandler; private Handler mHandler;
private Runnable mUpdateFiles; private Runnable mUpdateFiles;
private ChoosePDFAdapter adapter; private ChoosePDFAdapter adapter;
...@@ -50,13 +50,12 @@ public class ChoosePDFActivity extends ListActivity { ...@@ -50,13 +50,12 @@ public class ChoosePDFActivity extends ListActivity {
String storageState = Environment.getExternalStorageState(); String storageState = Environment.getExternalStorageState();
if (!Environment.MEDIA_MOUNTED.equals(storageState) 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); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.no_media_warning); builder.setTitle(R.string.no_media_warning);
builder.setMessage(R.string.no_media_hint); builder.setMessage(R.string.no_media_hint);
AlertDialog alert = builder.create(); AlertDialog alert = builder.create();
alert.setButton(AlertDialog.BUTTON_POSITIVE,getString(R.string.dismiss), alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.dismiss),
new OnClickListener() { new OnClickListener() {
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
finish(); finish();
...@@ -78,8 +77,8 @@ public class ChoosePDFActivity extends ListActivity { ...@@ -78,8 +77,8 @@ public class ChoosePDFActivity extends ListActivity {
mUpdateFiles = new Runnable() { mUpdateFiles = new Runnable() {
public void run() { public void run() {
Resources res = getResources(); Resources res = getResources();
String appName = res.getString(R.string.app_name); String appName = "app_name";
String version = res.getString(R.string.version); String version = "1.0";
String title = res.getString(R.string.picker_title_App_Ver_Dir); String title = res.getString(R.string.picker_title_App_Ver_Dir);
setTitle(String.format(title, appName, version, mDirectory)); setTitle(String.format(title, appName, version, mDirectory));
...@@ -204,7 +203,7 @@ public class ChoosePDFActivity extends ListActivity { ...@@ -204,7 +203,7 @@ public class ChoosePDFActivity extends ListActivity {
position -= mDirs.length; position -= mDirs.length;
Uri uri = Uri.fromFile(mFiles[position]); 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.setAction(Intent.ACTION_VIEW);
intent.setData(uri); intent.setData(uri);
switch (mPurpose) { switch (mPurpose) {
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="accept">接受</string> <string name="accept">接受</string>
<string name="app_name">MuPDF</string>
<string name="cancel">取消</string> <string name="cancel">取消</string>
<string name="cannot_open_buffer">无法打开缓冲器</string> <string name="cannot_open_buffer">无法打开缓冲器</string>
<string name="cannot_open_document">无法打开文档</string> <string name="cannot_open_document">无法打开文档</string>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <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_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="no_media_hint">Sharing the storage media with a PC can make it inaccessible</string>
<string name="cancel">Cancel</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