Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
4cfbee2524 | |||
6b44f589ac | |||
2c549830ed | |||
ad5a1dca8b | |||
8037938adf |
13
.idea/deploymentTargetDropDown.xml
generated
13
.idea/deploymentTargetDropDown.xml
generated
@ -1,6 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="$USER_HOME$/.android/avd/Pixel_5_API_26.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
@ -12,6 +23,6 @@
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2022-04-24T09:01:51.756259Z" />
|
||||
<timeTargetWasSelectedWithDropDown value="2023-01-18T19:46:02.696157Z" />
|
||||
</component>
|
||||
</project>
|
@ -5,7 +5,7 @@ It can also open links to userpages of Bookwyrm users and it can scan ISBN codes
|
||||
|
||||
This application works on: Android 6 and above.
|
||||
|
||||
And if you want to know, I am `@StoryDragon@wyrms.de` on BookWyrm.
|
||||
And if you want to know, I am [`@StoryDragon@wyrms.de`](https://wyrms.de/user/storydragon) on BookWyrm.
|
||||
|
||||
For the ISBN-scanning I use the library zxing-android-embedded.
|
||||
The barcode icon that is added for instances that do not have ISBN-scanning by default comes from the Remix Icon project.
|
||||
|
@ -3,14 +3,14 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 31
|
||||
compileSdk 33
|
||||
|
||||
defaultConfig {
|
||||
applicationId "nl.privacydragon.bookwyrm"
|
||||
minSdk 23
|
||||
targetSdk 31
|
||||
versionCode 8
|
||||
versionName "1.3.1"
|
||||
versionCode 10
|
||||
versionName "1.3.3"
|
||||
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
}
|
||||
@ -29,12 +29,12 @@ android {
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation 'androidx.appcompat:appcompat:1.4.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
|
||||
implementation 'androidx.appcompat:appcompat:1.6.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
implementation 'com.google.zxing:core:3.3.0'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
|
||||
implementation 'com.google.zxing:core:3.5.1'
|
||||
implementation 'com.journeyapps:zxing-android-embedded:4.3.0@aar'
|
||||
//implementation 'com.github.yuriy-budiyev:code-scanner:2.1.2'
|
||||
|
||||
|
Binary file not shown.
BIN
app/release/Bookwyrm-v1.3.3.apk
Normal file
BIN
app/release/Bookwyrm-v1.3.3.apk
Normal file
Binary file not shown.
@ -11,8 +11,8 @@
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 8,
|
||||
"versionName": "1.3.1",
|
||||
"versionCode": 10,
|
||||
"versionName": "1.3.3",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
|
@ -5,13 +5,11 @@
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
|
||||
<meta-data
|
||||
android:name="android.webkit.WebView.MetricsOptOut"
|
||||
android:value="true" />
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@mipmap/ic_launcher_wyrm"
|
||||
@ -19,6 +17,9 @@
|
||||
android:roundIcon="@mipmap/ic_launcher_wyrm_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.Bookwyrm">
|
||||
<meta-data
|
||||
android:name="android.webkit.WebView.MetricsOptOut"
|
||||
android:value="true" />
|
||||
<activity
|
||||
android:name=".HandlerActivity"
|
||||
android:exported="true">
|
||||
@ -330,6 +331,182 @@
|
||||
android:host="library.cybre.city"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="books.storydragon.nl"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="reading.unbl.ink"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="velhaestante.com.br"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="bookwyrm.gatti.ninja"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="books.theunseen.city"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="lore.livellosegreto.it"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="books.jascha.wtf"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="bw.diaspodon.fr"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="bookwyrm.tilde.zone"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="ramblingreaders.org"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="libros.mistli.net"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="lectura.social"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="orreadi.com"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="bookishbook.club"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="bookwyrm.tech"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="comelibros.club"
|
||||
android:pathPrefix="/user/" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".StartActivity"
|
||||
|
@ -70,6 +70,7 @@ public class HandlerActivity extends AppCompatActivity {
|
||||
// End of auto-generated stuff
|
||||
LoadIndicator = (ProgressBar) findViewById(R.id.progressBar3);
|
||||
myWebView = (WebView) findViewById(R.id.webview);
|
||||
myWebView.setVisibility(View.GONE);
|
||||
myWebView.getSettings().setJavaScriptEnabled(true);
|
||||
myWebView.getSettings().setDomStorageEnabled(true);
|
||||
myWebView.addJavascriptInterface(new Object()
|
||||
@ -176,6 +177,7 @@ public class HandlerActivity extends AppCompatActivity {
|
||||
myWebView.setWebViewClient(new HandlerActivity.MyWebViewClient() {
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
LoadIndicator.setVisibility(View.GONE);
|
||||
myWebView.setVisibility(View.VISIBLE);
|
||||
|
||||
view.loadUrl("javascript:(function() { document.getElementById('id_password').value = '" + passw + "'; ;})()");
|
||||
view.loadUrl("javascript:(function() { document.getElementById('id_localname').value = '" + name + "'; ;})()");
|
||||
@ -216,7 +218,7 @@ public class HandlerActivity extends AppCompatActivity {
|
||||
// Need to accept permissions to use the camera
|
||||
@Override
|
||||
public void onPermissionRequest(PermissionRequest request) {
|
||||
String permission = Manifest.permission.CAMERA;
|
||||
String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||
int grant = ContextCompat.checkSelfPermission(HandlerActivity.this, permission);
|
||||
if (grant != PackageManager.PERMISSION_GRANTED) {
|
||||
String[] permission_list = new String[1];
|
||||
@ -226,7 +228,7 @@ public class HandlerActivity extends AppCompatActivity {
|
||||
request.grant(request.getResources());
|
||||
final String[] requestedResources = request.getResources();
|
||||
for (String r : requestedResources) {
|
||||
if (r.equals(PermissionRequest.RESOURCE_VIDEO_CAPTURE)) {
|
||||
if (r.equals(PermissionRequest.RESOURCE_PROTECTED_MEDIA_ID)) {
|
||||
request.grant(new String[]{PermissionRequest.RESOURCE_VIDEO_CAPTURE});
|
||||
break;
|
||||
}
|
||||
@ -267,7 +269,7 @@ public class HandlerActivity extends AppCompatActivity {
|
||||
Toast.makeText(this, "cancelled", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Log.d("MainActivity", "Scanned");
|
||||
myWebView.loadUrl("Javascript:(function() {document.getElementById('search_input').value = " + Result.getContents() + ";" +
|
||||
myWebView.loadUrl("Javascript:(function() {document.getElementById('tour-search').value = " + Result.getContents() + ";" + "document.getElementById('search_input').value = " + Result.getContents() + ";" +
|
||||
"document.getElementsByTagName('form')[0].submit(); ;})()");
|
||||
LoadIndicator.setVisibility(View.VISIBLE);
|
||||
|
||||
|
@ -54,6 +54,7 @@ public class StartActivity extends AppCompatActivity {
|
||||
setContentView(R.layout.activity_start);
|
||||
LoadIndicator = (ProgressBar) findViewById(R.id.progressBar3);
|
||||
myWebView = (WebView) findViewById(R.id.webview);
|
||||
myWebView.setVisibility(View.GONE);
|
||||
myWebView.getSettings().setJavaScriptEnabled(true);
|
||||
myWebView.addJavascriptInterface(new Object()
|
||||
{
|
||||
@ -138,6 +139,7 @@ public class StartActivity extends AppCompatActivity {
|
||||
myWebView.setWebViewClient(new MyWebViewClient(){
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
LoadIndicator.setVisibility(View.GONE);
|
||||
myWebView.setVisibility(View.VISIBLE);
|
||||
|
||||
view.loadUrl("javascript:(function() { document.getElementById('id_password_confirm').value = '" + passw + "'; ;})()");
|
||||
view.loadUrl("javascript:(function() { document.getElementById('id_localname_confirm').value = '" + name + "'; ;})()");
|
||||
@ -194,7 +196,7 @@ public class StartActivity extends AppCompatActivity {
|
||||
Toast.makeText(this, "cancelled", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Log.d("MainActivity", "Scanned");
|
||||
myWebView.loadUrl("Javascript:(function() {document.getElementById('search_input').value = " + Result.getContents() + ";" +
|
||||
myWebView.loadUrl("Javascript:(function() {document.getElementById('tour-search').value = " + Result.getContents() + ";" + "document.getElementById('search_input').value = " + Result.getContents() + ";" +
|
||||
"document.getElementsByTagName('form')[0].submit(); ;})()");
|
||||
LoadIndicator.setVisibility(View.VISIBLE);
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
android:id="@+id/Instance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="262dp"
|
||||
android:hint="bookwyrm.social"
|
||||
@ -41,7 +41,7 @@
|
||||
android:id="@+id/Username"
|
||||
android:layout_width="409dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="284dp"
|
||||
android:hint="Username"
|
||||
@ -55,7 +55,7 @@
|
||||
|
||||
<EditText
|
||||
android:id="@+id/Password"
|
||||
android:layout_width="409dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
@ -89,10 +89,10 @@
|
||||
android:id="@+id/textView2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="76dp"
|
||||
android:layout_marginEnd="185dp"
|
||||
android:layout_marginBottom="35dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="Instance. WITHOUT the https part"
|
||||
app:layout_constraintBottom_toTopOf="@+id/Instance"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@ -107,7 +107,7 @@
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginEnd="41dp"
|
||||
android:layout_marginBottom="35dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="Username"
|
||||
app:layout_constraintBottom_toTopOf="@+id/Username"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@ -115,6 +115,21 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/Instance" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView6"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginEnd="340dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="Password"
|
||||
app:layout_constraintBottom_toTopOf="@+id/Password"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/Username" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Base application theme. -->
|
||||
<style name="Theme.Bookwyrm" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<style name="Theme.Bookwyrm" parent="Theme.AppCompat">
|
||||
<!-- Primary brand color. -->
|
||||
<item name="colorPrimary">#3298DC</item>
|
||||
<item name="colorPrimaryDark">#1B557C</item>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Base application theme. -->
|
||||
<style name="Theme.Bookwyrm" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<style name="Theme.Bookwyrm" parent="Theme.AppCompat">
|
||||
<!-- Primary brand color. -->
|
||||
<item name="colorPrimary">#3298DC</item>
|
||||
<item name="colorPrimaryDark">#1B557C</item>
|
||||
|
3
fastlane/metadata/android/en-US/changelogs/10.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/10.txt
Normal file
@ -0,0 +1,3 @@
|
||||
* Fixed a bug with the barcode scanning. Now you can scan barcodes again.
|
||||
* Dependencies have been updated to newest versions.
|
||||
* More Bookwyrm instances have been added.
|
2
fastlane/metadata/android/en-US/changelogs/9.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/9.txt
Normal file
@ -0,0 +1,2 @@
|
||||
* Changed the initial screen to dark mode.
|
||||
* The login screen things are now better aligned.
|
Binary file not shown.
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 45 KiB |
Reference in New Issue
Block a user