Spaces:
Sleeping
Sleeping
Jatin Mehra
commited on
Commit
·
e9f4000
1
Parent(s):
f4812e3
update android app fixed bugs
Browse files- Android App/.idea/deploymentTargetSelector.xml +0 -11
- Android App/.idea/gradle.xml +0 -1
- Android App/.idea/other.xml +1 -1
- Android App/.idea/vcs.xml +0 -6
- Android App/app/build.gradle +3 -3
- Android App/app/release/baselineProfiles/0/app-release.dm +0 -0
- Android App/app/release/baselineProfiles/1/app-release.dm +0 -0
- Android App/app/release/output-metadata.json +2 -2
- Android App/app/src/androidTest/java/com/jatinmehra/pdfinsightpro/ExampleInstrumentedTest.java +1 -1
- Android App/app/src/main/AndroidManifest.xml +11 -13
- Android App/app/src/main/java/com/jatinmehra/pdfinsightpro/MainActivity.java +123 -51
- Android App/app/src/main/java/com/jatinmehra/pdfinsightpro/SplashActivity.java +73 -0
- Android App/app/src/main/res/layout/activity_main.xml +11 -7
- Android App/app/src/main/res/layout/activity_splash.xml +55 -0
- Android App/app/src/main/res/values-night/themes.xml +2 -2
- Android App/app/src/main/res/values/ic_launcher_background.xml +1 -1
- Android App/app/src/main/res/values/strings.xml +1 -1
- Android App/app/src/main/res/values/themes.xml +2 -2
- Android App/gradle.properties +1 -2
- Android App/gradle/libs.versions.toml +1 -1
- Android App/gradle/wrapper/gradle-wrapper.properties +1 -1
- Android App/settings.gradle +1 -1
Android App/.idea/deploymentTargetSelector.xml
CHANGED
|
@@ -4,17 +4,6 @@
|
|
| 4 |
<selectionStates>
|
| 5 |
<SelectionState runConfigName="app">
|
| 6 |
<option name="selectionMode" value="DROPDOWN" />
|
| 7 |
-
<DropdownSelection timestamp="2024-11-06T18:12:39.367387Z">
|
| 8 |
-
<Target type="DEFAULT_BOOT">
|
| 9 |
-
<handle>
|
| 10 |
-
<DeviceId pluginId="PhysicalDevice" identifier="serial=f542e44" />
|
| 11 |
-
</handle>
|
| 12 |
-
</Target>
|
| 13 |
-
</DropdownSelection>
|
| 14 |
-
<DialogSelection />
|
| 15 |
-
</SelectionState>
|
| 16 |
-
<SelectionState runConfigName="MainActivity">
|
| 17 |
-
<option name="selectionMode" value="DROPDOWN" />
|
| 18 |
</SelectionState>
|
| 19 |
</selectionStates>
|
| 20 |
</component>
|
|
|
|
| 4 |
<selectionStates>
|
| 5 |
<SelectionState runConfigName="app">
|
| 6 |
<option name="selectionMode" value="DROPDOWN" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
</SelectionState>
|
| 8 |
</selectionStates>
|
| 9 |
</component>
|
Android App/.idea/gradle.xml
CHANGED
|
@@ -1,6 +1,5 @@
|
|
| 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
<project version="4">
|
| 3 |
-
<component name="GradleMigrationSettings" migrationVersion="1" />
|
| 4 |
<component name="GradleSettings">
|
| 5 |
<option name="linkedExternalProjectsSettings">
|
| 6 |
<GradleProjectSettings>
|
|
|
|
| 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
<project version="4">
|
|
|
|
| 3 |
<component name="GradleSettings">
|
| 4 |
<option name="linkedExternalProjectsSettings">
|
| 5 |
<GradleProjectSettings>
|
Android App/.idea/other.xml
CHANGED
|
@@ -262,7 +262,7 @@
|
|
| 262 |
<option name="codename" value="q6q" />
|
| 263 |
<option name="id" value="q6q" />
|
| 264 |
<option name="manufacturer" value="Samsung" />
|
| 265 |
-
<option name="name" value="
|
| 266 |
<option name="screenDensity" value="420" />
|
| 267 |
<option name="screenX" value="1856" />
|
| 268 |
<option name="screenY" value="2160" />
|
|
|
|
| 262 |
<option name="codename" value="q6q" />
|
| 263 |
<option name="id" value="q6q" />
|
| 264 |
<option name="manufacturer" value="Samsung" />
|
| 265 |
+
<option name="name" value="Galaxy Z Fold6" />
|
| 266 |
<option name="screenDensity" value="420" />
|
| 267 |
<option name="screenX" value="1856" />
|
| 268 |
<option name="screenY" value="2160" />
|
Android App/.idea/vcs.xml
DELETED
|
@@ -1,6 +0,0 @@
|
|
| 1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
-
<project version="4">
|
| 3 |
-
<component name="VcsDirectoryMappings">
|
| 4 |
-
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
| 5 |
-
</component>
|
| 6 |
-
</project>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Android App/app/build.gradle
CHANGED
|
@@ -7,11 +7,11 @@ android {
|
|
| 7 |
compileSdk 34
|
| 8 |
|
| 9 |
defaultConfig {
|
| 10 |
-
applicationId
|
| 11 |
minSdk 24
|
| 12 |
targetSdk 34
|
| 13 |
-
versionCode
|
| 14 |
-
versionName
|
| 15 |
|
| 16 |
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
| 17 |
}
|
|
|
|
| 7 |
compileSdk 34
|
| 8 |
|
| 9 |
defaultConfig {
|
| 10 |
+
applicationId 'com.jatinmehra.pdfinsightpro'
|
| 11 |
minSdk 24
|
| 12 |
targetSdk 34
|
| 13 |
+
versionCode 3
|
| 14 |
+
versionName '1.2.0'
|
| 15 |
|
| 16 |
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
| 17 |
}
|
Android App/app/release/baselineProfiles/0/app-release.dm
CHANGED
|
Binary files a/Android App/app/release/baselineProfiles/0/app-release.dm and b/Android App/app/release/baselineProfiles/0/app-release.dm differ
|
|
|
Android App/app/release/baselineProfiles/1/app-release.dm
CHANGED
|
Binary files a/Android App/app/release/baselineProfiles/1/app-release.dm and b/Android App/app/release/baselineProfiles/1/app-release.dm differ
|
|
|
Android App/app/release/output-metadata.json
CHANGED
|
@@ -11,8 +11,8 @@
|
|
| 11 |
"type": "SINGLE",
|
| 12 |
"filters": [],
|
| 13 |
"attributes": [],
|
| 14 |
-
"versionCode":
|
| 15 |
-
"versionName": "1.0",
|
| 16 |
"outputFile": "app-release.apk"
|
| 17 |
}
|
| 18 |
],
|
|
|
|
| 11 |
"type": "SINGLE",
|
| 12 |
"filters": [],
|
| 13 |
"attributes": [],
|
| 14 |
+
"versionCode": 3,
|
| 15 |
+
"versionName": "1.2.0",
|
| 16 |
"outputFile": "app-release.apk"
|
| 17 |
}
|
| 18 |
],
|
Android App/app/src/androidTest/java/com/jatinmehra/pdfinsightpro/ExampleInstrumentedTest.java
CHANGED
|
@@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
|
|
| 21 |
public void useAppContext() {
|
| 22 |
// Context of the app under test.
|
| 23 |
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
| 24 |
-
assertEquals("com.jatinmehra.
|
| 25 |
}
|
| 26 |
}
|
|
|
|
| 21 |
public void useAppContext() {
|
| 22 |
// Context of the app under test.
|
| 23 |
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
| 24 |
+
assertEquals("com.jatinmehra.pdf_insight_pro", appContext.getPackageName());
|
| 25 |
}
|
| 26 |
}
|
Android App/app/src/main/AndroidManifest.xml
CHANGED
|
@@ -2,35 +2,33 @@
|
|
| 2 |
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
| 3 |
xmlns:tools="http://schemas.android.com/tools">
|
| 4 |
|
| 5 |
-
|
| 6 |
-
<uses-permission android:name="android.permission.
|
| 7 |
-
|
| 8 |
-
<!-- Storage Permissions -->
|
| 9 |
-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
| 10 |
-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
| 11 |
-
android:maxSdkVersion="28"/>
|
| 12 |
|
| 13 |
<application
|
| 14 |
-
android:usesCleartextTraffic="true"
|
| 15 |
android:allowBackup="true"
|
| 16 |
android:dataExtractionRules="@xml/data_extraction_rules"
|
| 17 |
android:fullBackupContent="@xml/backup_rules"
|
| 18 |
-
android:icon="@
|
| 19 |
android:label="@string/app_name"
|
| 20 |
android:roundIcon="@mipmap/ic_launcher_round"
|
| 21 |
android:supportsRtl="true"
|
| 22 |
-
android:theme="@style/Theme.
|
| 23 |
tools:targetApi="31">
|
| 24 |
-
|
| 25 |
<activity
|
| 26 |
android:name=".MainActivity"
|
| 27 |
-
android:exported="
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
<intent-filter>
|
| 29 |
<action android:name="android.intent.action.MAIN" />
|
|
|
|
| 30 |
<category android:name="android.intent.category.LAUNCHER" />
|
| 31 |
</intent-filter>
|
| 32 |
</activity>
|
| 33 |
-
|
| 34 |
</application>
|
| 35 |
|
| 36 |
</manifest>
|
|
|
|
| 2 |
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
| 3 |
xmlns:tools="http://schemas.android.com/tools">
|
| 4 |
|
| 5 |
+
<uses-permission android:name="android.permission.INTERNET" />
|
| 6 |
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
| 7 |
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
<application
|
|
|
|
| 10 |
android:allowBackup="true"
|
| 11 |
android:dataExtractionRules="@xml/data_extraction_rules"
|
| 12 |
android:fullBackupContent="@xml/backup_rules"
|
| 13 |
+
android:icon="@mipmap/ic_launcher"
|
| 14 |
android:label="@string/app_name"
|
| 15 |
android:roundIcon="@mipmap/ic_launcher_round"
|
| 16 |
android:supportsRtl="true"
|
| 17 |
+
android:theme="@style/Theme.PDFInsightPRO"
|
| 18 |
tools:targetApi="31">
|
|
|
|
| 19 |
<activity
|
| 20 |
android:name=".MainActivity"
|
| 21 |
+
android:exported="false" />
|
| 22 |
+
<activity
|
| 23 |
+
android:name=".SplashActivity"
|
| 24 |
+
android:exported="true"
|
| 25 |
+
android:screenOrientation="portrait">
|
| 26 |
<intent-filter>
|
| 27 |
<action android:name="android.intent.action.MAIN" />
|
| 28 |
+
|
| 29 |
<category android:name="android.intent.category.LAUNCHER" />
|
| 30 |
</intent-filter>
|
| 31 |
</activity>
|
|
|
|
| 32 |
</application>
|
| 33 |
|
| 34 |
</manifest>
|
Android App/app/src/main/java/com/jatinmehra/pdfinsightpro/MainActivity.java
CHANGED
|
@@ -1,9 +1,20 @@
|
|
| 1 |
package com.jatinmehra.pdfinsightpro;
|
| 2 |
|
| 3 |
-
import android.
|
|
|
|
|
|
|
|
|
|
| 4 |
import android.content.Intent;
|
|
|
|
|
|
|
|
|
|
| 5 |
import android.net.Uri;
|
|
|
|
| 6 |
import android.os.Bundle;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
import android.webkit.ValueCallback;
|
| 8 |
import android.webkit.WebChromeClient;
|
| 9 |
import android.webkit.WebView;
|
|
@@ -16,73 +27,134 @@ import androidx.appcompat.app.AppCompatActivity;
|
|
| 16 |
|
| 17 |
public class MainActivity extends AppCompatActivity {
|
| 18 |
|
| 19 |
-
private
|
|
|
|
|
|
|
|
|
|
| 20 |
private ValueCallback<Uri[]> filePathCallback;
|
| 21 |
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
}
|
| 30 |
-
filePathCallback.onReceiveValue(resultUris);
|
| 31 |
-
filePathCallback = null;
|
| 32 |
}
|
| 33 |
-
|
| 34 |
-
|
|
|
|
| 35 |
|
| 36 |
-
@SuppressLint("SetJavaScriptEnabled")
|
| 37 |
@Override
|
| 38 |
protected void onCreate(Bundle savedInstanceState) {
|
| 39 |
super.onCreate(savedInstanceState);
|
| 40 |
setContentView(R.layout.activity_main);
|
| 41 |
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
});
|
|
|
|
| 60 |
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
|
|
|
|
|
|
| 72 |
}
|
| 73 |
-
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
}
|
| 78 |
|
| 79 |
@Override
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
}
|
| 87 |
}
|
| 88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
package com.jatinmehra.pdfinsightpro;
|
| 2 |
|
| 3 |
+
import android.Manifest;
|
| 4 |
+
import android.app.AlertDialog;
|
| 5 |
+
import android.app.DownloadManager;
|
| 6 |
+
import android.content.Context;
|
| 7 |
import android.content.Intent;
|
| 8 |
+
import android.content.pm.PackageManager;
|
| 9 |
+
import android.net.ConnectivityManager;
|
| 10 |
+
import android.net.NetworkInfo;
|
| 11 |
import android.net.Uri;
|
| 12 |
+
import android.os.Build;
|
| 13 |
import android.os.Bundle;
|
| 14 |
+
import android.os.Environment;
|
| 15 |
+
import android.util.Log;
|
| 16 |
+
import android.webkit.CookieManager;
|
| 17 |
+
import android.webkit.URLUtil;
|
| 18 |
import android.webkit.ValueCallback;
|
| 19 |
import android.webkit.WebChromeClient;
|
| 20 |
import android.webkit.WebView;
|
|
|
|
| 27 |
|
| 28 |
public class MainActivity extends AppCompatActivity {
|
| 29 |
|
| 30 |
+
private static final int FILE_CHOOSER_REQUEST_CODE = 1;
|
| 31 |
+
|
| 32 |
+
String websiteURL = "https://jatinmehra-pdf-insight-pro.hf.space";
|
| 33 |
+
private WebView webview;
|
| 34 |
private ValueCallback<Uri[]> filePathCallback;
|
| 35 |
|
| 36 |
+
private final ActivityResultLauncher<Intent> fileChooserLauncher =
|
| 37 |
+
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
| 38 |
+
if (filePathCallback == null) return;
|
| 39 |
+
|
| 40 |
+
Uri[] results = null;
|
| 41 |
+
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
|
| 42 |
+
results = new Uri[]{result.getData().getData()};
|
|
|
|
|
|
|
|
|
|
| 43 |
}
|
| 44 |
+
filePathCallback.onReceiveValue(results);
|
| 45 |
+
filePathCallback = null;
|
| 46 |
+
});
|
| 47 |
|
|
|
|
| 48 |
@Override
|
| 49 |
protected void onCreate(Bundle savedInstanceState) {
|
| 50 |
super.onCreate(savedInstanceState);
|
| 51 |
setContentView(R.layout.activity_main);
|
| 52 |
|
| 53 |
+
if (!CheckNetwork.isInternetAvailable(this)) {
|
| 54 |
+
setContentView(R.layout.activity_main);
|
| 55 |
+
|
| 56 |
+
new AlertDialog.Builder(this)
|
| 57 |
+
.setTitle("No internet connection available")
|
| 58 |
+
.setMessage("Please Check your Mobile data or Wi-Fi network.")
|
| 59 |
+
.setPositiveButton("Ok", (dialog, which) -> finish())
|
| 60 |
+
.show();
|
| 61 |
+
} else {
|
| 62 |
+
webview = findViewById(R.id.webView);
|
| 63 |
+
webview.getSettings().setJavaScriptEnabled(true);
|
| 64 |
+
webview.getSettings().setDomStorageEnabled(true);
|
| 65 |
+
webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
|
| 66 |
+
webview.loadUrl(websiteURL);
|
| 67 |
+
webview.setWebViewClient(new WebViewClientDemo());
|
| 68 |
+
webview.setWebChromeClient(new WebChromeClientDemo());
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
| 72 |
+
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
|
| 73 |
+
Log.d("permission", "permission denied to WRITE_EXTERNAL_STORAGE - requesting it");
|
| 74 |
+
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
| 75 |
+
requestPermissions(permissions, 1);
|
| 76 |
}
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
webview.setDownloadListener((url, userAgent, contentDisposition, mimeType, contentLength) -> {
|
| 80 |
+
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
|
| 81 |
+
request.setMimeType(mimeType);
|
| 82 |
+
String cookies = CookieManager.getInstance().getCookie(url);
|
| 83 |
+
request.addRequestHeader("cookie", cookies);
|
| 84 |
+
request.addRequestHeader("User-Agent", userAgent);
|
| 85 |
+
request.setDescription("Downloading file....");
|
| 86 |
+
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
|
| 87 |
+
request.allowScanningByMediaScanner();
|
| 88 |
+
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
| 89 |
+
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(url, contentDisposition, mimeType));
|
| 90 |
+
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
|
| 91 |
+
dm.enqueue(request);
|
| 92 |
+
Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_SHORT).show();
|
| 93 |
});
|
| 94 |
+
}
|
| 95 |
|
| 96 |
+
private class WebViewClientDemo extends WebViewClient {
|
| 97 |
+
@Override
|
| 98 |
+
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
| 99 |
+
view.loadUrl(url);
|
| 100 |
+
return true;
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
private class WebChromeClientDemo extends WebChromeClient {
|
| 105 |
+
@Override
|
| 106 |
+
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
|
| 107 |
+
if (MainActivity.this.filePathCallback != null) {
|
| 108 |
+
MainActivity.this.filePathCallback.onReceiveValue(null);
|
| 109 |
}
|
| 110 |
+
MainActivity.this.filePathCallback = filePathCallback;
|
| 111 |
|
| 112 |
+
Intent intent = fileChooserParams.createIntent();
|
| 113 |
+
try {
|
| 114 |
+
fileChooserLauncher.launch(intent);
|
| 115 |
+
} catch (Exception e) {
|
| 116 |
+
MainActivity.this.filePathCallback = null;
|
| 117 |
+
Toast.makeText(MainActivity.this, "File upload failed: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
| 118 |
+
return false;
|
| 119 |
+
}
|
| 120 |
+
return true;
|
| 121 |
+
}
|
| 122 |
}
|
| 123 |
|
| 124 |
@Override
|
| 125 |
+
public void onBackPressed() {
|
| 126 |
+
if (webview.isFocused() && webview.canGoBack()) {
|
| 127 |
+
webview.goBack();
|
| 128 |
+
} else {
|
| 129 |
+
new AlertDialog.Builder(this)
|
| 130 |
+
.setTitle("EXIT")
|
| 131 |
+
.setMessage("You want to close this app?")
|
| 132 |
+
.setPositiveButton("Yes", (dialog, which) -> finish())
|
| 133 |
+
.setNegativeButton("No", null)
|
| 134 |
+
.show();
|
| 135 |
}
|
| 136 |
}
|
| 137 |
}
|
| 138 |
+
|
| 139 |
+
class CheckNetwork {
|
| 140 |
+
|
| 141 |
+
private static final String TAG = CheckNetwork.class.getSimpleName();
|
| 142 |
+
|
| 143 |
+
public static boolean isInternetAvailable(Context context) {
|
| 144 |
+
NetworkInfo info = ((ConnectivityManager)
|
| 145 |
+
context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
|
| 146 |
+
|
| 147 |
+
if (info == null) {
|
| 148 |
+
Log.d(TAG, "no internet connection");
|
| 149 |
+
return false;
|
| 150 |
+
} else {
|
| 151 |
+
if (info.isConnected()) {
|
| 152 |
+
Log.d(TAG, " internet connection available...");
|
| 153 |
+
return true;
|
| 154 |
+
} else {
|
| 155 |
+
Log.d(TAG, " internet connection");
|
| 156 |
+
return true;
|
| 157 |
+
}
|
| 158 |
+
}
|
| 159 |
+
}
|
| 160 |
+
}
|
Android App/app/src/main/java/com/jatinmehra/pdfinsightpro/SplashActivity.java
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
package com.jatinmehra.pdfinsightpro;
|
| 2 |
+
|
| 3 |
+
import androidx.appcompat.app.AppCompatActivity;
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
import android.content.Intent;
|
| 7 |
+
|
| 8 |
+
import android.os.Bundle;
|
| 9 |
+
|
| 10 |
+
import android.view.Window;
|
| 11 |
+
|
| 12 |
+
import android.view.WindowManager;
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
public class SplashActivity extends AppCompatActivity {
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
@Override
|
| 19 |
+
|
| 20 |
+
protected void onCreate(Bundle savedInstanceState) {
|
| 21 |
+
|
| 22 |
+
super.onCreate(savedInstanceState);
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
Window window = getWindow() ;
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
| 29 |
+
|
| 30 |
+
setContentView(R.layout.activity_splash);
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
Thread splashTread = new Thread(){
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
@Override
|
| 39 |
+
|
| 40 |
+
public void run() {
|
| 41 |
+
|
| 42 |
+
try {
|
| 43 |
+
|
| 44 |
+
sleep(3000);
|
| 45 |
+
|
| 46 |
+
startActivity(new Intent(getApplicationContext(),MainActivity.class));
|
| 47 |
+
|
| 48 |
+
finish();
|
| 49 |
+
|
| 50 |
+
} catch (InterruptedException e) {
|
| 51 |
+
|
| 52 |
+
e.printStackTrace();
|
| 53 |
+
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
super.run();
|
| 58 |
+
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
};
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
splashTread.start();
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
}
|
Android App/app/src/main/res/layout/activity_main.xml
CHANGED
|
@@ -8,11 +8,15 @@
|
|
| 8 |
tools:context=".MainActivity">
|
| 9 |
|
| 10 |
<WebView
|
| 11 |
-
android:
|
| 12 |
-
android:
|
| 13 |
-
android:
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
| 8 |
tools:context=".MainActivity">
|
| 9 |
|
| 10 |
<WebView
|
| 11 |
+
android:layout_width="fill_parent"
|
| 12 |
+
android:layout_height="fill_parent"
|
| 13 |
+
android:id="@+id/webView"
|
| 14 |
+
android:layout_alignParentTop="true"
|
| 15 |
+
android:layout_alignParentLeft="true"
|
| 16 |
+
android:layout_alignParentStart="true"
|
| 17 |
+
android:layout_alignParentBottom="true"
|
| 18 |
+
android:layout_alignParentRight="true"
|
| 19 |
+
android:layout_alignParentEnd="true"
|
| 20 |
+
tools:ignore="MissingConstraints" />
|
| 21 |
+
|
| 22 |
</androidx.constraintlayout.widget.ConstraintLayout>
|
Android App/app/src/main/res/layout/activity_splash.xml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
| 2 |
+
|
| 3 |
+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
| 4 |
+
|
| 5 |
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
| 6 |
+
|
| 7 |
+
xmlns:tools="http://schemas.android.com/tools"
|
| 8 |
+
|
| 9 |
+
android:layout_width="match_parent"
|
| 10 |
+
|
| 11 |
+
android:layout_height="match_parent"
|
| 12 |
+
|
| 13 |
+
android:orientation="vertical"
|
| 14 |
+
|
| 15 |
+
tools:context=".SplashActivity">
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
<ImageView
|
| 19 |
+
|
| 20 |
+
android:layout_width="match_parent"
|
| 21 |
+
|
| 22 |
+
android:layout_height="300dp"
|
| 23 |
+
|
| 24 |
+
android:src="@drawable/logo"
|
| 25 |
+
|
| 26 |
+
android:scaleType="centerCrop"
|
| 27 |
+
|
| 28 |
+
android:padding="100dp"
|
| 29 |
+
|
| 30 |
+
android:layout_marginTop="220dp"/>
|
| 31 |
+
|
| 32 |
+
<ProgressBar
|
| 33 |
+
|
| 34 |
+
android:layout_width="220dp"
|
| 35 |
+
|
| 36 |
+
android:layout_height="10dp"
|
| 37 |
+
|
| 38 |
+
android:layout_gravity="center_horizontal"
|
| 39 |
+
|
| 40 |
+
style="?android:attr/progressBarStyleHorizontal"
|
| 41 |
+
|
| 42 |
+
android:max="100"
|
| 43 |
+
|
| 44 |
+
android:indeterminate="true"
|
| 45 |
+
|
| 46 |
+
android:progress="0"
|
| 47 |
+
|
| 48 |
+
android:layout_marginTop="100dp"
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
/>
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
</LinearLayout>
|
Android App/app/src/main/res/values-night/themes.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<resources xmlns:tools="http://schemas.android.com/tools">
|
| 2 |
<!-- Base application theme. -->
|
| 3 |
-
<style name="Theme.
|
| 4 |
<!-- Primary brand color. -->
|
| 5 |
<item name="colorPrimary">@color/purple_200</item>
|
| 6 |
<item name="colorPrimaryVariant">@color/purple_700</item>
|
|
@@ -10,7 +10,7 @@
|
|
| 10 |
<item name="colorSecondaryVariant">@color/teal_200</item>
|
| 11 |
<item name="colorOnSecondary">@color/black</item>
|
| 12 |
<!-- Status bar color. -->
|
| 13 |
-
<item name="android:statusBarColor">?attr/
|
| 14 |
<!-- Customize your theme here. -->
|
| 15 |
</style>
|
| 16 |
</resources>
|
|
|
|
| 1 |
<resources xmlns:tools="http://schemas.android.com/tools">
|
| 2 |
<!-- Base application theme. -->
|
| 3 |
+
<style name="Theme.PDFInsightPRO" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
| 4 |
<!-- Primary brand color. -->
|
| 5 |
<item name="colorPrimary">@color/purple_200</item>
|
| 6 |
<item name="colorPrimaryVariant">@color/purple_700</item>
|
|
|
|
| 10 |
<item name="colorSecondaryVariant">@color/teal_200</item>
|
| 11 |
<item name="colorOnSecondary">@color/black</item>
|
| 12 |
<!-- Status bar color. -->
|
| 13 |
+
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
|
| 14 |
<!-- Customize your theme here. -->
|
| 15 |
</style>
|
| 16 |
</resources>
|
Android App/app/src/main/res/values/ic_launcher_background.xml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
<?xml version="1.0" encoding="utf-8"?>
|
| 2 |
<resources>
|
| 3 |
-
<color name="ic_launcher_background">#
|
| 4 |
</resources>
|
|
|
|
| 1 |
<?xml version="1.0" encoding="utf-8"?>
|
| 2 |
<resources>
|
| 3 |
+
<color name="ic_launcher_background">#8021B3</color>
|
| 4 |
</resources>
|
Android App/app/src/main/res/values/strings.xml
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
<resources>
|
| 2 |
-
<string name="app_name">
|
| 3 |
</resources>
|
|
|
|
| 1 |
<resources>
|
| 2 |
+
<string name="app_name">PDF-Insight-PRO</string>
|
| 3 |
</resources>
|
Android App/app/src/main/res/values/themes.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<resources xmlns:tools="http://schemas.android.com/tools">
|
| 2 |
<!-- Base application theme. -->
|
| 3 |
-
<style name="Theme.
|
| 4 |
<!-- Primary brand color. -->
|
| 5 |
<item name="colorPrimary">@color/purple_500</item>
|
| 6 |
<item name="colorPrimaryVariant">@color/purple_700</item>
|
|
@@ -10,7 +10,7 @@
|
|
| 10 |
<item name="colorSecondaryVariant">@color/teal_700</item>
|
| 11 |
<item name="colorOnSecondary">@color/black</item>
|
| 12 |
<!-- Status bar color. -->
|
| 13 |
-
<item name="android:statusBarColor">?attr/
|
| 14 |
<!-- Customize your theme here. -->
|
| 15 |
</style>
|
| 16 |
</resources>
|
|
|
|
| 1 |
<resources xmlns:tools="http://schemas.android.com/tools">
|
| 2 |
<!-- Base application theme. -->
|
| 3 |
+
<style name="Theme.PDFInsightPRO" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
| 4 |
<!-- Primary brand color. -->
|
| 5 |
<item name="colorPrimary">@color/purple_500</item>
|
| 6 |
<item name="colorPrimaryVariant">@color/purple_700</item>
|
|
|
|
| 10 |
<item name="colorSecondaryVariant">@color/teal_700</item>
|
| 11 |
<item name="colorOnSecondary">@color/black</item>
|
| 12 |
<!-- Status bar color. -->
|
| 13 |
+
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
|
| 14 |
<!-- Customize your theme here. -->
|
| 15 |
</style>
|
| 16 |
</resources>
|
Android App/gradle.properties
CHANGED
|
@@ -18,5 +18,4 @@ android.useAndroidX=true
|
|
| 18 |
# Enables namespacing of each library's R class so that its R class includes only the
|
| 19 |
# resources declared in the library itself and none from the library's dependencies,
|
| 20 |
# thereby reducing the size of the R class for that library
|
| 21 |
-
android.nonTransitiveRClass=true
|
| 22 |
-
org.gradle.configuration-cache=true
|
|
|
|
| 18 |
# Enables namespacing of each library's R class so that its R class includes only the
|
| 19 |
# resources declared in the library itself and none from the library's dependencies,
|
| 20 |
# thereby reducing the size of the R class for that library
|
| 21 |
+
android.nonTransitiveRClass=true
|
|
|
Android App/gradle/libs.versions.toml
CHANGED
|
@@ -6,7 +6,7 @@ espressoCore = "3.6.1"
|
|
| 6 |
appcompat = "1.7.0"
|
| 7 |
material = "1.12.0"
|
| 8 |
activity = "1.9.3"
|
| 9 |
-
constraintlayout = "2.
|
| 10 |
|
| 11 |
[libraries]
|
| 12 |
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
|
|
| 6 |
appcompat = "1.7.0"
|
| 7 |
material = "1.12.0"
|
| 8 |
activity = "1.9.3"
|
| 9 |
+
constraintlayout = "2.2.0"
|
| 10 |
|
| 11 |
[libraries]
|
| 12 |
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
Android App/gradle/wrapper/gradle-wrapper.properties
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
#
|
| 2 |
distributionBase=GRADLE_USER_HOME
|
| 3 |
distributionPath=wrapper/dists
|
| 4 |
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
|
|
|
| 1 |
+
#Sun Nov 17 15:47:25 IST 2024
|
| 2 |
distributionBase=GRADLE_USER_HOME
|
| 3 |
distributionPath=wrapper/dists
|
| 4 |
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
Android App/settings.gradle
CHANGED
|
@@ -19,5 +19,5 @@ dependencyResolutionManagement {
|
|
| 19 |
}
|
| 20 |
}
|
| 21 |
|
| 22 |
-
rootProject.name = "
|
| 23 |
include ':app'
|
|
|
|
| 19 |
}
|
| 20 |
}
|
| 21 |
|
| 22 |
+
rootProject.name = "PDF-Insight-PRO"
|
| 23 |
include ':app'
|