Skip to content

Commit 7fb2165

Browse files
committed
Merge branch 'dev'
2 parents a6671b8 + e861cef commit 7fb2165

File tree

14 files changed

+262
-227
lines changed

14 files changed

+262
-227
lines changed

README.md

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,6 @@ A modern Android application for text sharing, file sharing and URL shortening s
1111
|:---------:|:------------:|:------------:|
1212
| ![Upload page](assets/0.png) | ![Uploads page](assets/1.png) | ![Setting page](assets/2.png) |
1313

14-
## Features
15-
16-
- Server URL and auth token configuration
17-
- Text sharing and uploads
18-
- File uploads with optional expiry
19-
- URL shortening
20-
- Remote file uploads
21-
- One-shot file and URL functionality
22-
- Upload result notifications
23-
- Automatic clipboard copying
24-
- Secure credential storage
25-
- Material Design UI
26-
- Light and dark theme support
27-
2814
## Installation
2915

3016
1. Clone the repository
@@ -39,13 +25,15 @@ npm install
3925
npm start android
4026
```
4127

42-
4. Follow the Expo CLI instructions to run on your desired platform
28+
4. Follow the Expo CLI instructions to run on your desired platform
29+
30+
`Note: droidypaste is only tested in android platform"
4331

4432
## Configuration
4533

4634
1. Open the app settings
4735
2. Enter your RustyPaste server URL
48-
3. Enter your authentication token
36+
3. Enter your authentication token and delete token if applicable
4937
4. Save the settings
5038

5139
## Usage
@@ -68,26 +56,22 @@ npm start android
6856
- Shorten URL: Creates a short link
6957
- Upload Remote: Downloads and hosts the remote file
7058

59+
### Share to droidypaste
60+
1. Share files, text or url to droidypaste
61+
2. Files and text are uploaded and urls are shortened
62+
3. The URL copied to clipboard
7163

7264
### Building for Production
7365

7466
1. Configure app.json with your production settings
7567
2. Build for Android:
7668
```bash
77-
eas build --platform android
69+
npx expo prebuild --platform android --clean
70+
cd android
71+
chmod +x gradlew
72+
./gradlew assembleRelease
7873
```
79-
80-
3. Build for iOS:
81-
```bash
82-
eas build --platform ios
83-
```
84-
85-
## Security
86-
87-
- Credentials are stored securely using expo-secure-store
88-
- Network requests are made over HTTPS
89-
- File access permissions are requested only when needed
90-
- Sensitive data is not logged or stored in plain text
74+
3. Release file location: `src/android/app/build/outputs/apk/release/app-release.apk`
9175

9276
## Contributing
9377

@@ -99,7 +83,7 @@ eas build --platform ios
9983

10084
# TODO
10185

102-
- [ ] Share intent integration (files, text can be shared through other app)
86+
- [x] Share intent integration (files, text can be shared through other app)
10387
- [x] Page dedicated for Listing all endpoints & deleting endpoints
10488
- [x] Usable without authtoken
10589
- [ ] Release on fdroid store

assets/0.png

-1.48 KB
Loading

assets/1.png

-3.05 KB
Loading

assets/2.png

-545 Bytes
Loading

src/android/app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,11 @@
2929
<data android:scheme="droidypaste"/>
3030
<data android:scheme="com.droidypaste.app"/>
3131
</intent-filter>
32-
<intent-filter data-generated="true">
33-
<action android:name="android.intent.action.android.intent.action.SEND"/>
34-
<data android:mimeType="text/*"/>
35-
<data android:mimeType="image/*"/>
36-
<data android:mimeType="video/*"/>
37-
<data android:mimeType="application/*"/>
38-
<category android:name="android.intent.category.android.intent.category.DEFAULT"/>
39-
</intent-filter>
40-
<intent-filter data-generated="true">
41-
<action android:name="android.intent.action.android.intent.action.SEND_MULTIPLE"/>
42-
<data android:mimeType="image/*"/>
43-
<data android:mimeType="video/*"/>
44-
<data android:mimeType="application/*"/>
45-
<category android:name="android.intent.category.android.intent.category.DEFAULT"/>
32+
<intent-filter>
33+
<action android:name="android.intent.action.SEND" />
34+
<category android:name="android.intent.category.DEFAULT" />
35+
<data android:mimeType="*/*" />
4636
</intent-filter>
4737
</activity>
4838
</application>
49-
</manifest>
39+
</manifest>

src/android/app/src/main/java/com/droidypaste/app/MainActivity.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import expo.modules.splashscreen.SplashScreenManager
44
import android.os.Build
55
import android.os.Bundle
66

7+
import android.content.Intent;
8+
79
import com.facebook.react.ReactActivity
810
import com.facebook.react.ReactActivityDelegate
911
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
@@ -44,6 +46,11 @@ class MainActivity : ReactActivity() {
4446
){})
4547
}
4648

49+
override fun onNewIntent(intent: Intent) {
50+
super.onNewIntent(intent)
51+
setIntent(intent)
52+
}
53+
4754
/**
4855
* Align the back button behavior with Android S
4956
* where moving root activities to background instead of finishing activities.

src/app.json

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,24 +63,7 @@
6363
"mimeType": "video/*"
6464
},
6565
{
66-
"mimeType": "application/*"
67-
}
68-
]
69-
},
70-
{
71-
"action": "android.intent.action.SEND_MULTIPLE",
72-
"category": [
73-
"android.intent.category.DEFAULT"
74-
],
75-
"data": [
76-
{
77-
"mimeType": "image/*"
78-
},
79-
{
80-
"mimeType": "video/*"
81-
},
82-
{
83-
"mimeType": "application/*"
66+
"mimeType": "*/*"
8467
}
8568
]
8669
}
@@ -96,6 +79,7 @@
9679
"expo-image-picker",
9780
"expo-document-picker",
9881
"expo-notifications",
82+
"expo-share-intent",
9983
[
10084
"expo-splash-screen",
10185
{

src/app/(tabs)/_layout.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ function TabIcon({ name, color, size }: { name: TabIconName; color: string; size
6666
}
6767

6868
// For Android and web, use Material Icons
69-
const materialIconName = name === 'square.and.arrow.up' ? 'upload' :
70-
name === 'list.bullet' ? 'list' : 'settings';
69+
const materialIconName = name === 'square.and.arrow.up' ? 'upload' : name === 'list.bullet' ? 'list' : 'settings';
7170
return (
7271
<MaterialIcons
7372
name={materialIconName}

0 commit comments

Comments
 (0)