Loading app/build.gradle +0 −14 Original line number Diff line number Diff line Loading @@ -40,15 +40,6 @@ android { versionCode 27 versionName "3.6" vectorDrawables.useSupportLibrary = true javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true arguments = [ "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() ] } } } buildFeatures { Loading Loading @@ -87,11 +78,6 @@ dependencies { //Pdf Viewer Library (Proguard config done) implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1' //Android Annotations Library (Proguard config not needed) //compileOnly annotationProcessor 'org.androidannotations:androidannotations:4.6.0' implementation 'org.androidannotations:androidannotations-api:4.6.0' //License Presenter Library (Proguard config not needed) implementation 'com.github.franmontiel:AttributionPresenter:1.0.1' Loading app/src/main/AndroidManifest.xml +4 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ android:theme="@style/Theme.Cyanea.Light.DarkActionBar"> <activity android:name=".MainActivity_" android:name=".MainActivity" android:documentLaunchMode="intoExisting"> <intent-filter> <action android:name="android.intent.action.VIEW" /> Loading Loading @@ -74,7 +74,7 @@ <activity-alias android:name=".LauncherAlias" android:enabled="true" android:targetActivity=".MainActivity_"> android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> Loading @@ -85,7 +85,7 @@ <activity android:name=".AboutActivity" android:label="@string/action_about" android:parentActivityName=".MainActivity_" /> android:parentActivityName=".MainActivity" /> <activity android:name=".MainIntroActivity" Loading @@ -95,7 +95,7 @@ <activity android:name=".SettingsActivity" android:label="@string/settings" android:parentActivityName=".MainActivity_" /> android:parentActivityName=".MainActivity" /> </application> </manifest> No newline at end of file app/src/main/java/com/gsnathan/pdfviewer/MainActivity.java +52 −27 Original line number Diff line number Diff line Loading @@ -69,8 +69,6 @@ import com.jaredrummler.cyanea.prefs.CyaneaSettingsActivity; import com.shockwave.pdfium.PdfDocument; import com.shockwave.pdfium.PdfPasswordException; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.NonConfigurationInstance; import org.jetbrains.annotations.NotNull; import java.io.File; Loading @@ -78,7 +76,6 @@ import java.io.IOException; import static android.content.pm.PackageManager.PERMISSION_DENIED; @EActivity public class MainActivity extends CyaneaAppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); Loading @@ -86,6 +83,13 @@ public class MainActivity extends CyaneaAppCompatActivity { private PrintManager mgr; private SharedPreferences prefManager; private Uri uri; private int pageNumber = 0; private String pdfPassword; private String pdfFileName = ""; private byte[] downloadedPdfFileContent; private boolean isBottomNavigationHidden = false; private ActivityMainBinding viewBinding; Loading @@ -100,6 +104,14 @@ public class MainActivity extends CyaneaAppCompatActivity { this::saveDownloadedFileAfterPermissionRequest ); private final ActivityResultLauncher<Intent> settingsLauncher = registerForActivityResult( new StartActivityForResult(), result -> { if (uri != null) displayFromUri(uri); } ); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -119,7 +131,11 @@ public class MainActivity extends CyaneaAppCompatActivity { onFirstInstall(); onFirstUpdate(); if (savedInstanceState != null) { restoreInstanceState(savedInstanceState); } else { readUriFromIntent(getIntent()); } if (uri == null) { pickFile(); setTitle(""); Loading Loading @@ -155,6 +171,20 @@ public class MainActivity extends CyaneaAppCompatActivity { } } @Override protected void onSaveInstanceState(@NonNull Bundle outState) { outState.putParcelable("uri", uri); outState.putInt("pageNumber", pageNumber); outState.putString("pdfPassword", pdfPassword); super.onSaveInstanceState(outState); } private void restoreInstanceState(Bundle savedState) { uri = savedState.getParcelable("uri"); pageNumber = savedState.getInt("pageNumber"); pdfPassword = savedState.getString("pdfPassword"); } private void readUriFromIntent(Intent intent) { Uri intentUri = intent.getData(); if (intentUri == null) { Loading @@ -172,27 +202,6 @@ public class MainActivity extends CyaneaAppCompatActivity { uri = intentUri; } @NonConfigurationInstance Uri uri; @NonConfigurationInstance Integer pageNumber = 0; @NonConfigurationInstance String pdfPassword; private String pdfFileName = ""; private byte[] downloadedPdfFileContent; private final ActivityResultLauncher<Intent> settingsLauncher = registerForActivityResult( new StartActivityForResult(), result -> { if (uri != null) displayFromUri(uri); } ); void shareFile() { startActivity(Utils.emailIntent(pdfFileName, "", getResources().getString(R.string.share), uri)); } Loading Loading @@ -328,15 +337,31 @@ public class MainActivity extends CyaneaAppCompatActivity { String scheme = uri.getScheme(); if (scheme != null && scheme.contains("http")) { downloadOrShowDownloadedFile(uri); } else { configurePdfViewAndLoad(viewBinding.pdfView.fromUri(uri)); } } private void downloadOrShowDownloadedFile(Uri uri) { if (downloadedPdfFileContent == null) { downloadedPdfFileContent = (byte[]) getLastCustomNonConfigurationInstance(); } if (downloadedPdfFileContent != null) { configurePdfViewAndLoad(viewBinding.pdfView.fromBytes(downloadedPdfFileContent)); } else { // we will get the pdf asynchronously with the DownloadPDFFile object viewBinding.progressBar.setVisibility(View.VISIBLE); DownloadPDFFile downloadPDFFile = new DownloadPDFFile(this); downloadPDFFile.execute(uri.toString()); } else { configurePdfViewAndLoad(viewBinding.pdfView.fromUri(uri)); } } @Override public Object onRetainCustomNonConfigurationInstance() { return downloadedPdfFileContent; } public void hideProgressBar() { viewBinding.progressBar.setVisibility(View.GONE); } Loading Loading
app/build.gradle +0 −14 Original line number Diff line number Diff line Loading @@ -40,15 +40,6 @@ android { versionCode 27 versionName "3.6" vectorDrawables.useSupportLibrary = true javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true arguments = [ "androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString() ] } } } buildFeatures { Loading Loading @@ -87,11 +78,6 @@ dependencies { //Pdf Viewer Library (Proguard config done) implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1' //Android Annotations Library (Proguard config not needed) //compileOnly annotationProcessor 'org.androidannotations:androidannotations:4.6.0' implementation 'org.androidannotations:androidannotations-api:4.6.0' //License Presenter Library (Proguard config not needed) implementation 'com.github.franmontiel:AttributionPresenter:1.0.1' Loading
app/src/main/AndroidManifest.xml +4 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ android:theme="@style/Theme.Cyanea.Light.DarkActionBar"> <activity android:name=".MainActivity_" android:name=".MainActivity" android:documentLaunchMode="intoExisting"> <intent-filter> <action android:name="android.intent.action.VIEW" /> Loading Loading @@ -74,7 +74,7 @@ <activity-alias android:name=".LauncherAlias" android:enabled="true" android:targetActivity=".MainActivity_"> android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> Loading @@ -85,7 +85,7 @@ <activity android:name=".AboutActivity" android:label="@string/action_about" android:parentActivityName=".MainActivity_" /> android:parentActivityName=".MainActivity" /> <activity android:name=".MainIntroActivity" Loading @@ -95,7 +95,7 @@ <activity android:name=".SettingsActivity" android:label="@string/settings" android:parentActivityName=".MainActivity_" /> android:parentActivityName=".MainActivity" /> </application> </manifest> No newline at end of file
app/src/main/java/com/gsnathan/pdfviewer/MainActivity.java +52 −27 Original line number Diff line number Diff line Loading @@ -69,8 +69,6 @@ import com.jaredrummler.cyanea.prefs.CyaneaSettingsActivity; import com.shockwave.pdfium.PdfDocument; import com.shockwave.pdfium.PdfPasswordException; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.NonConfigurationInstance; import org.jetbrains.annotations.NotNull; import java.io.File; Loading @@ -78,7 +76,6 @@ import java.io.IOException; import static android.content.pm.PackageManager.PERMISSION_DENIED; @EActivity public class MainActivity extends CyaneaAppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); Loading @@ -86,6 +83,13 @@ public class MainActivity extends CyaneaAppCompatActivity { private PrintManager mgr; private SharedPreferences prefManager; private Uri uri; private int pageNumber = 0; private String pdfPassword; private String pdfFileName = ""; private byte[] downloadedPdfFileContent; private boolean isBottomNavigationHidden = false; private ActivityMainBinding viewBinding; Loading @@ -100,6 +104,14 @@ public class MainActivity extends CyaneaAppCompatActivity { this::saveDownloadedFileAfterPermissionRequest ); private final ActivityResultLauncher<Intent> settingsLauncher = registerForActivityResult( new StartActivityForResult(), result -> { if (uri != null) displayFromUri(uri); } ); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -119,7 +131,11 @@ public class MainActivity extends CyaneaAppCompatActivity { onFirstInstall(); onFirstUpdate(); if (savedInstanceState != null) { restoreInstanceState(savedInstanceState); } else { readUriFromIntent(getIntent()); } if (uri == null) { pickFile(); setTitle(""); Loading Loading @@ -155,6 +171,20 @@ public class MainActivity extends CyaneaAppCompatActivity { } } @Override protected void onSaveInstanceState(@NonNull Bundle outState) { outState.putParcelable("uri", uri); outState.putInt("pageNumber", pageNumber); outState.putString("pdfPassword", pdfPassword); super.onSaveInstanceState(outState); } private void restoreInstanceState(Bundle savedState) { uri = savedState.getParcelable("uri"); pageNumber = savedState.getInt("pageNumber"); pdfPassword = savedState.getString("pdfPassword"); } private void readUriFromIntent(Intent intent) { Uri intentUri = intent.getData(); if (intentUri == null) { Loading @@ -172,27 +202,6 @@ public class MainActivity extends CyaneaAppCompatActivity { uri = intentUri; } @NonConfigurationInstance Uri uri; @NonConfigurationInstance Integer pageNumber = 0; @NonConfigurationInstance String pdfPassword; private String pdfFileName = ""; private byte[] downloadedPdfFileContent; private final ActivityResultLauncher<Intent> settingsLauncher = registerForActivityResult( new StartActivityForResult(), result -> { if (uri != null) displayFromUri(uri); } ); void shareFile() { startActivity(Utils.emailIntent(pdfFileName, "", getResources().getString(R.string.share), uri)); } Loading Loading @@ -328,15 +337,31 @@ public class MainActivity extends CyaneaAppCompatActivity { String scheme = uri.getScheme(); if (scheme != null && scheme.contains("http")) { downloadOrShowDownloadedFile(uri); } else { configurePdfViewAndLoad(viewBinding.pdfView.fromUri(uri)); } } private void downloadOrShowDownloadedFile(Uri uri) { if (downloadedPdfFileContent == null) { downloadedPdfFileContent = (byte[]) getLastCustomNonConfigurationInstance(); } if (downloadedPdfFileContent != null) { configurePdfViewAndLoad(viewBinding.pdfView.fromBytes(downloadedPdfFileContent)); } else { // we will get the pdf asynchronously with the DownloadPDFFile object viewBinding.progressBar.setVisibility(View.VISIBLE); DownloadPDFFile downloadPDFFile = new DownloadPDFFile(this); downloadPDFFile.execute(uri.toString()); } else { configurePdfViewAndLoad(viewBinding.pdfView.fromUri(uri)); } } @Override public Object onRetainCustomNonConfigurationInstance() { return downloadedPdfFileContent; } public void hideProgressBar() { viewBinding.progressBar.setVisibility(View.GONE); } Loading