Skip to content

DataSoftcoAI/WebShare

 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

WebShare

Local File Sharing
Explore the docs »

View Demo · Report Bug · Request Feature

About The Project

Logo

WebShare is a Android application that enables you to effortlessly share files and text locally using your browser. With its user-friendly interface and robust features, WebShare simplifies the process of sharing data between devices connected to the same network.

Key Features:

  • Seamless File and Text Sharing: Share files and text seamlessly between your Android device and any browser on the local network.

  • Enhanced Security: Protect your shared content with a secure PIN.

  • User Management: Manage and control access privileges, such as blocking or granting user access.

Download it here:

Get it on Google Play

Tech stack & Open-source libraries

  • Kotlin based, Coroutines for asynchronous.
  • Jetpack
    • Navigation: Helps you implement navigation, With a navigation graph.
    • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
  • Moshi: A modern JSON library for Kotlin and Java.
  • Material-Components: Material design components for TabLayout, Switch.
  • Glide: Loading images.
  • Coil: For loading svg files.

Directory Trees

Android app: app/src/main/java/ss/nscube/webshare

├── db
│   ├── AppDatabase.kt
│   ├── daos
│   │   └── TextDAO.kt
│   ├── DatabaseHelper.kt
│   └── entities
│       └── TextEntity.kt
├── server
│   ├── events
│   │   └── ServerStatusListener.java
│   ├── Exceptions.kt
│   ├── file
│   │   ├── AppFolderManager.kt
│   │   ├── DownloadManager.kt
│   │   ├── FileDownloader.kt
│   │   ├── FileTransferListener.kt
│   │   ├── FileTransferObserver.kt
│   │   ├── FileUploader.kt
│   │   ├── ProgressCalculator.kt
│   │   ├── TransferManager.kt
│   │   ├── UploadManager.kt
│   │   └── WebFile.kt
│   ├── headers
│   │   ├── ContentDisposition.kt
│   │   ├── ContentTypes.kt
│   │   ├── Cookies.kt
│   │   ├── Header.kt
│   │   ├── Headers.kt
│   │   ├── Path.kt
│   │   ├── Range.kt
│   │   ├── RequestHeader.kt
│   │   ├── Request.kt
│   │   ├── ResponseHeader.kt
│   │   └── Response.kt
│   ├── HTTPServer.kt
│   ├── models
│   │   ├── AddTextResponse.kt
│   │   ├── AuthRequest.kt
│   │   ├── AuthResponse.kt
│   │   ├── ChangeNameRequest.kt
│   │   ├── DeletedResponse.kt
│   │   ├── DeleteMultiRequest.kt
│   │   ├── ErrorResponse.kt
│   │   ├── FileListResponse.kt
│   │   ├── FilePaginationRequest.kt
│   │   ├── FileResponse.kt
│   │   ├── FileUploadResponse.kt
│   │   ├── InfoResponse.kt
│   │   ├── MyFilesPaginationRequest.kt
│   │   ├── SignedUrlResponse.kt
│   │   ├── StatusRequest.kt
│   │   ├── StatusResponse.kt
│   │   ├── Text.kt
│   │   ├── TextPaginationRequest.kt
│   │   ├── UpdatedResponse.kt
│   │   ├── UploadInfoResponse.kt
│   │   └── ZipRequest.kt
│   ├── user
│   │   ├── FileManager.kt
│   │   ├── SignedUrlList.kt
│   │   ├── Text.kt
│   │   ├── TextManager.kt
│   │   ├── User.kt
│   │   └── UserManager.kt
│   └── utils
│       ├── FileUtil.kt
│       ├── ServerUtil.java
│       ├── TimerTaskManager.kt
│       └── Util.kt
├── ServerService.kt
├── ui
│   ├── adapters
│   │   ├── AlbumAdapter.kt
│   │   └── ImageVideoAdapter.kt
│   ├── dialogs
│   │   ├── AlbumDialog.kt
│   │   ├── DeleteConfirmationDialog.kt
│   │   ├── FileRenameChangeDialog.kt
│   │   ├── QrDialog.kt
│   │   ├── RemoveAccessConfirmationDialog.kt
│   │   ├── RequestPermissionDialog.kt
│   │   ├── SecurityDialog.kt
│   │   ├── SelectedDialog.kt
│   │   ├── SettingsMemoryLimitDialog.kt
│   │   ├── SettingsNameChangeDialog.kt
│   │   ├── SettingsPinAttemptsDialog.kt
│   │   ├── SettingsStopInactiveDialog.kt
│   │   └── ThemeDialog.kt
│   ├── frags
│   │   ├── BaseFragment.kt
│   │   ├── home
│   │   │   ├── AboutFragment.kt
│   │   │   └── HomeFragment.kt
│   │   ├── receive
│   │   │   ├── ReceiveFragment.kt
│   │   │   └── ReceiveHistoryFragment.kt
│   │   ├── send
│   │   │   ├── AppFolderFragment.kt
│   │   │   ├── AppFragment.kt
│   │   │   ├── AudioFragment.kt
│   │   │   ├── BaseFileFragment.kt
│   │   │   ├── FileFragment.kt
│   │   │   ├── ImageFragment.kt
│   │   │   ├── PictureFragment.kt
│   │   │   ├── SendFragment.kt
│   │   │   └── VideoFragment.kt
│   │   ├── ServerSettingsFragment.kt
│   │   ├── text
│   │   │   ├── AddTextFragment.kt
│   │   │   ├── TextFragment.kt
│   │   │   ├── TextHistoryFragment.kt
│   │   │   └── TextInfoFragment.kt
│   │   └── UsersFragment.kt
│   ├── MainActivity.kt
│   ├── MenuPopup.kt
│   ├── utils
│   │   ├── PermissionRequestHelper.kt
│   │   ├── QRCodeWriter.java
│   │   ├── TimeCal.kt
│   │   ├── UiUtil.kt
│   │   ├── Util.kt
│   │   └── ViewUtil.kt
│   └── views
│       ├── actionbar
│       │   └── ActionBar.kt
│       └── IconTextItemLinearLayout.kt
├── utils
│   ├── IpAddressUpdater.kt
│   ├── Log.kt
│   ├── PreferencesUtil.kt
│   ├── scan
│   │   ├── FileScan.kt
│   │   └── models
│   │       ├── Album.kt
│   │       ├── App.kt
│   │       ├── Audio.kt
│   │       ├── Data.kt
│   │       ├── Image.kt
│   │       └── Video.kt
│   └── WebFileUtil.kt
└── WebShareApp.kt

24 directories, 124 files
Web: app/src/main/assets/web

├── css
│   ├── commons.css
│   └── style.css
├── favicon.ico
├── file_not_found.html
├── fonts
│   ├── roboto_light-webfont.woff
│   ├── roboto_light-webfont.woff2
│   ├── roboto_medium-webfont.woff
│   ├── roboto_medium-webfont.woff2
│   ├── roboto_regular-webfont.woff
│   └── roboto_regular-webfont.woff2
├── images
│   ├── back.svg
│   ├── blogger.svg
│   ├── bluew.svg
│   ├── cancel.svg
│   ├── details.png
│   ├── drop.svg
│   ├── evernote.svg
│   ├── facebook.svg
│   ├── go.svg
│   ├── linkedin.svg
│   ├── menu.svg
│   ├── moon.svg
│   ├── no_access.png
│   ├── no_content.png
│   ├── no_server.png
│   ├── open.svg
│   ├── pinterest.svg
│   ├── reddit.svg
│   ├── refresh.svg
│   ├── remove_red.svg
│   ├── remove.svg
│   ├── send.svg
│   ├── settings.svg
│   ├── skype.svg
│   ├── sun.svg
│   ├── telegram.me.svg
│   ├── tumblr.svg
│   ├── twitter.svg
│   ├── unauthorized.png
│   ├── vk.svg
│   └── whatsapp.svg
├── js
│   ├── app.js
│   └── base64.min.js
├── apple-touch-icon.png
└── index.html

4 directories, 45 files
Web JS: WebShareWeb

├── api.js
├── constants.js
├── declare.js
├── init.js
├── merge.sh
├── theme.js
├── ui
│   ├── dialogs
│   │   ├── add-text-dialog.js
│   │   ├── delete-dialog.js
│   │   ├── dialog.js
│   │   ├── download-menu-dialog.js
│   │   ├── file-info-bottom-sheet.js
│   │   ├── info-dialog.js
│   │   ├── max-dialog.js
│   │   ├── name-dialog.js
│   │   ├── send-file-dialog.js
│   │   ├── share-dialog.js
│   │   └── view-text-dialog.js
│   ├── page-manager.js
│   ├── screens
│   │   ├── auth.js
│   │   ├── home
│   │   │   ├── fileinfo
│   │   │   │   ├── button.js
│   │   │   │   ├── file-info.js
│   │   │   │   ├── file-info-node.js
│   │   │   │   └── select-button.js
│   │   │   ├── files
│   │   │   │   ├── file-chooser.js
│   │   │   │   ├── file-drop-event.js
│   │   │   │   ├── file-node.js
│   │   │   │   ├── files-view.js
│   │   │   │   ├── grid-file-node.js
│   │   │   │   ├── grid-view.js
│   │   │   │   ├── list-file-node.js
│   │   │   │   ├── list-view.js
│   │   │   │   ├── search-node.js
│   │   │   │   └── selection-mode.js
│   │   │   ├── file-tab.js
│   │   │   ├── file-type-chips.js
│   │   │   ├── home.js
│   │   │   ├── sample-data.js
│   │   │   ├── tabs-node.js
│   │   │   ├── text-tab.js
│   │   │   └── viewMode.js
│   │   ├── page.js
│   │   ├── settings
│   │   │   ├── settings.js
│   │   │   └── theme-radio-button.js
│   │   └── try-again-page.js
│   ├── scroll-listener.js
│   ├── utils.js
│   └── visibility.js
└── WebShareWeb.code-workspace

7 directories, 48 files

License

Distributed under the GNU General Public License v3.0. See LICENSE.txt for more information.

About

Share files and text locally via browser.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 54.6%
  • JavaScript 35.1%
  • CSS 4.0%
  • HTML 3.9%
  • Java 2.2%
  • Shell 0.2%