├── app ├── .gitignore ├── src │ └── main │ │ ├── ic_launcher-web.png │ │ ├── res │ │ ├── drawable-mdpi │ │ │ ├── apk.png │ │ │ ├── avi.png │ │ │ ├── c.png │ │ │ ├── cpp.png │ │ │ ├── dir.png │ │ │ ├── doc.png │ │ │ ├── flv.png │ │ │ ├── gif.png │ │ │ ├── gz.png │ │ │ ├── jar.png │ │ │ ├── js.png │ │ │ ├── ok.png │ │ │ ├── pdf.png │ │ │ ├── ppt.png │ │ │ ├── rar.png │ │ │ ├── web.png │ │ │ ├── zip.png │ │ │ ├── audio.png │ │ │ ├── back.png │ │ │ ├── copy.png │ │ │ ├── docx.png │ │ │ ├── excel.png │ │ │ ├── html.png │ │ │ ├── image.png │ │ │ ├── text.png │ │ │ ├── trash.png │ │ │ ├── vedio.png │ │ │ ├── word.png │ │ │ └── other_file.png │ │ ├── drawable │ │ │ ├── ic_wifi.png │ │ │ ├── ic_book_cover.png │ │ │ ├── shared_wifi_enable.png │ │ │ ├── shared_wifi_shut_down.png │ │ │ ├── popup_menu_view_background.9.png │ │ │ ├── shape_red_bg_frame10.xml │ │ │ ├── shape_common_bg_frame10.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_delete.xml │ │ │ └── ic_launcher_background.xml │ │ ├── mipmap-xxhdpi │ │ │ ├── more.png │ │ │ ├── kulian.png │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_foreground.png │ │ ├── xml │ │ │ └── install_file.xml │ │ ├── anim │ │ │ ├── popup_menu_dialog_in.xml │ │ │ └── popup_menu_dialog_out.xml │ │ ├── values │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values-v21 │ │ │ └── styles.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── menu │ │ │ └── item_menu.xml │ │ ├── layout │ │ │ ├── content_main.xml │ │ │ ├── empty_view.xml │ │ │ ├── activity_main.xml │ │ │ ├── layout_popup_menu_dialog.xml │ │ │ └── layout_file_item.xml │ │ └── values-en │ │ │ └── strings.xml │ │ ├── assets │ │ └── wifi │ │ │ ├── images │ │ │ ├── bg1_01.jpg │ │ │ ├── bg1_02.jpg │ │ │ ├── bg_drag.png │ │ │ ├── trash.gif │ │ │ ├── bg_files.jpg │ │ │ ├── bg_files2.jpg │ │ │ ├── bg_title.jpg │ │ │ ├── download.gif │ │ │ ├── progress.jpg │ │ │ ├── bg_file_list.jpg │ │ │ ├── progress_bg.jpg │ │ │ ├── select_file1.jpg │ │ │ ├── trash_white.png │ │ │ ├── button_status.png │ │ │ ├── table_header_bg.jpg │ │ │ ├── table_header_bg2.jpg │ │ │ ├── select_file1_pressed.jpg │ │ │ └── select_file1_rollover.jpg │ │ │ ├── scripts │ │ │ ├── lang.zh-Hans.js │ │ │ ├── lang.en-US.js │ │ │ ├── bitcandies.upload5.js │ │ │ ├── ajaxfileupload.js │ │ │ └── transfer.js │ │ │ ├── index.html │ │ │ └── css │ │ │ └── style.css │ │ ├── java │ │ └── me │ │ │ └── pengtao │ │ │ └── filetransfer │ │ │ ├── Constants.java │ │ │ ├── TransferApp.java │ │ │ ├── receiver │ │ │ └── PackageStateReceiver.java │ │ │ ├── util │ │ │ ├── WifiUtils.java │ │ │ ├── FileType.java │ │ │ └── FileUtils.java │ │ │ ├── FileModel.java │ │ │ ├── PopupMenuDialog.java │ │ │ ├── FileListAdapter.java │ │ │ ├── WebService.java │ │ │ └── MainActivity.java │ │ └── AndroidManifest.xml ├── google-services.json ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── README.md ├── gradlew.bat ├── extra └── terms_and_conditions.html ├── gradlew └── LICENSE /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/apk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/apk.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/avi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/avi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/c.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/cpp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/dir.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/doc.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/flv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/flv.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/gif.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/gz.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/jar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/jar.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/js.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/ok.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/pdf.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/ppt.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/rar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/rar.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/zip.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_wifi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable/ic_wifi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/audio.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/docx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/docx.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/excel.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/html.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/image.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/text.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/trash.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/vedio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/vedio.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/word.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxhdpi/more.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg1_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg1_01.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg1_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg1_02.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg_drag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg_drag.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/trash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/trash.gif -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_book_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable/ic_book_cover.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/kulian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxhdpi/kulian.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg_files.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg_files.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg_files2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg_files2.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg_title.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg_title.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/download.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/download.gif -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/progress.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/progress.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/other_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable-mdpi/other_file.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/bg_file_list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/bg_file_list.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/progress_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/progress_bg.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/select_file1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/select_file1.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/trash_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/trash_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/shared_wifi_enable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable/shared_wifi_enable.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | app/release 10 | -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/button_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/button_status.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/table_header_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/table_header_bg.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/table_header_bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/table_header_bg2.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/shared_wifi_shut_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable/shared_wifi_shut_down.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/select_file1_pressed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/select_file1_pressed.jpg -------------------------------------------------------------------------------- /app/src/main/assets/wifi/images/select_file1_rollover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/assets/wifi/images/select_file1_rollover.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/popup_menu_view_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/drawable/popup_menu_view_background.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPPAlien/FileTransfer/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/xml/install_file.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/anim/popup_menu_dialog_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/anim/popup_menu_dialog_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Mar 08 17:16:33 CST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #32A14A 4 | #303F9F 5 | #FF4081 6 | #6495ED 7 | #FFFFFF 8 | #EB4537 9 | #FAC230 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_red_bg_frame10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 11 | 12 | 13 | //背景色 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_common_bg_frame10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 11 | 12 | 13 | //背景色 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/item_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 13 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | android.useAndroidX=true 19 | android.enableJetifier=true -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/Constants.java: -------------------------------------------------------------------------------- 1 | package me.pengtao.filetransfer; 2 | 3 | import android.os.Environment; 4 | 5 | import java.io.File; 6 | 7 | public class Constants { 8 | public static final int HTTP_PORT = 12345; 9 | public static final String DIR_IN_SDCARD = "FileTransfer"; 10 | public static final int MSG_DIALOG_DISMISS = 0; 11 | public static final File DIR = new File(Environment.getExternalStorageDirectory() + File 12 | .separator + Constants.DIR_IN_SDCARD); 13 | 14 | public static final class RxBusEventType { 15 | public static final String POPUP_MENU_DIALOG_SHOW_DISMISS = "POPUP MENU DIALOG SHOW " + 16 | "DISMISS"; 17 | public static final String WIFI_CONNECT_CHANGE_EVENT = "WIFI CONNECT CHANGE EVENT"; 18 | public static final String LOAD_BOOK_LIST = "LOAD BOOK LIST"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/empty_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/TransferApp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 CPPAlien 3 | * 4 | * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/CPPAlien/FileTransfer/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.pengtao.filetransfer; 17 | 18 | import android.app.Application; 19 | 20 | /** 21 | * @author CPPAlien 22 | */ 23 | public class TransferApp extends Application { 24 | @Override 25 | public void onCreate() { 26 | super.onCreate(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/assets/wifi/scripts/lang.zh-Hans.js: -------------------------------------------------------------------------------- 1 | var STRINGS = {}; 2 | 3 | STRINGS.WIFI_TRANS_TITLE = '文件传输助手'; 4 | STRINGS.FILES_ON_DEVICE = '您设备上的文件列表'; 5 | STRINGS.FILENAME = '文件名'; 6 | STRINGS.FILE_SIZE = '大小'; 7 | STRINGS.FILE_OPER = '操作'; 8 | STRINGS.CONFIRM_DELETE_BOOK = '是否删除文件?'; 9 | STRINGS.DOWNLOAD_FILE = '下载文件'; 10 | STRINGS.DELETE_FILE = '删除文件'; 11 | STRINGS.USE_ONE_BROWSER = '无法上传文件,请勿使用多个浏览器窗口同时上传。'; 12 | STRINGS.UPLOAD_FAILED = '上传失败,请重新打开文件传输助手并刷新此页重新上传。'; 13 | STRINGS.UNSUPPORTED_FILE_TYPE = '请选择APK文件。'; 14 | STRINGS.FILE_IN_QUEUE = '文件已经在上传列队中。'; 15 | STRINGS.FILE_EXISTS = '文件已存在,请先删除再重新上传。'; 16 | STRINGS.YOU_CHOOSE = '您选择了'; 17 | STRINGS.CHOSEN_FILE_COUNT = '个文件,只能上传'; 18 | STRINGS.VALID_CHOSEN_FILE_COUNT = '个文件。\n请选择文件,文件名不能重复。'; 19 | STRINGS.CANCEL = '取消'; 20 | STRINGS.SELECT_YOUR_FILES = '请选择您要上传到文件传输助手的文件'; 21 | STRINGS.SUPPORTED_FILE_TYPES = '支持APK'; 22 | STRINGS.CANNOT_CONNECT_SERVER = '无法连接到文件传输助手,请重新文件传输服务并刷新此页后重新上传。'; 23 | STRINGS.DRAG_TO_HERE = "拖拽到此处上传"; 24 | STRINGS.SELECT_BUTTON_LABLE1 = "选择文件"; 25 | STRINGS.SELECT_BUTTON_LABLE2 = "可同时上传多个文件"; 26 | STRINGS.SELECT_BUTTON_LABLE = "选择文件"; 27 | STRINGS.WIFI_AVAILABLE = "WiFi连接已启用"; -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "316341165060", 4 | "project_id": "filetransfer-94133", 5 | "storage_bucket": "filetransfer-94133.appspot.com" 6 | }, 7 | "client": [ 8 | { 9 | "client_info": { 10 | "mobilesdk_app_id": "1:316341165060:android:2e482b94aa90d4cb39e951", 11 | "android_client_info": { 12 | "package_name": "me.pengtao.filetransfer" 13 | } 14 | }, 15 | "oauth_client": [ 16 | { 17 | "client_id": "316341165060-a1m5kcjqdj9tsmttcjkvelb5dqnq2kaf.apps.googleusercontent.com", 18 | "client_type": 3 19 | } 20 | ], 21 | "api_key": [ 22 | { 23 | "current_key": "AIzaSyAROoKJ20QLdInkc9fq0-uCSESAfGIVxRA" 24 | } 25 | ], 26 | "services": { 27 | "appinvite_service": { 28 | "other_platform_oauth_client": [ 29 | { 30 | "client_id": "316341165060-a1m5kcjqdj9tsmttcjkvelb5dqnq2kaf.apps.googleusercontent.com", 31 | "client_type": 3 32 | } 33 | ] 34 | } 35 | } 36 | } 37 | ], 38 | "configuration_version": "1" 39 | } -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/receiver/PackageStateReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 CPPAlien 3 | * 4 | * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/CPPAlien/FileTransfer/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.pengtao.filetransfer.receiver; 17 | 18 | import android.content.BroadcastReceiver; 19 | import android.content.Context; 20 | import android.content.Intent; 21 | 22 | import com.hwangjr.rxbus.RxBus; 23 | 24 | import me.pengtao.filetransfer.Constants; 25 | 26 | /** 27 | * @author CPPAlien 28 | */ 29 | public class PackageStateReceiver extends BroadcastReceiver { 30 | @Override 31 | public void onReceive(Context context, Intent intent) { 32 | RxBus.get().post(Constants.RxBusEventType.LOAD_BOOK_LIST, 0); 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/assets/wifi/scripts/lang.en-US.js: -------------------------------------------------------------------------------- 1 | var STRINGS = {}; 2 | 3 | STRINGS.WIFI_TRANS_TITLE = 'File Transfer'; 4 | STRINGS.FILES_ON_DEVICE = 'File list'; 5 | STRINGS.FILENAME = 'Name'; 6 | STRINGS.FILE_SIZE = 'Size'; 7 | STRINGS.FILE_OPER = 'Action'; 8 | STRINGS.CONFIRM_DELETE_BOOK = 'Delete?'; 9 | STRINGS.DOWNLOAD_FILE = 'Download file'; 10 | STRINGS.DELETE_FILE = 'Delete file'; 11 | STRINGS.USE_ONE_BROWSER = 'Upload failed. Please do not upload on multiple browser same time.'; 12 | STRINGS.UPLOAD_FAILED = 'Upload failed. Reopen this page and try again'; 13 | STRINGS.UNSUPPORTED_FILE_TYPE = 'The file type is unsupported'; 14 | STRINGS.FILE_IN_QUEUE = 'File is uploading'; 15 | STRINGS.FILE_EXISTS = 'File is exist, please delete and try again'; 16 | STRINGS.YOU_CHOOSE = 'You chose'; 17 | STRINGS.CHOSEN_FILE_COUNT = 'file(s),but limit'; 18 | STRINGS.VALID_CHOSEN_FILE_COUNT = 'file(s)。\nPlease choose file,file name cannot be same'; 19 | STRINGS.CANCEL = 'Cancel'; 20 | STRINGS.SELECT_YOUR_FILES = 'Choose the files you want to upload'; 21 | STRINGS.SUPPORTED_FILE_TYPES = 'Support the type'; 22 | STRINGS.CANNOT_CONNECT_SERVER = 'Connect failed, refresh the page and try again.'; 23 | STRINGS.DRAG_TO_HERE = "drag files here"; 24 | STRINGS.SELECT_BUTTON_LABLE1 = "Choose files"; 25 | STRINGS.SELECT_BUTTON_LABLE2 = "multiple files supported"; 26 | STRINGS.SELECT_BUTTON_LABLE = "Choose files"; 27 | STRINGS.WIFI_AVAILABLE = "WiFi is connected"; 28 | -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/util/WifiUtils.java: -------------------------------------------------------------------------------- 1 | package me.pengtao.filetransfer.util; 2 | 3 | import android.util.Log; 4 | 5 | import java.net.InetAddress; 6 | import java.net.NetworkInterface; 7 | import java.net.SocketException; 8 | import java.util.Enumeration; 9 | 10 | /** 11 | * @author chris 12 | */ 13 | public class WifiUtils { 14 | private static final String TAG = "WifiUtils"; 15 | 16 | public static String getDeviceIpAddress() { 17 | String deviceIpAddress = "###.###.###.###"; 18 | 19 | try { 20 | for (Enumeration enumeration = 21 | NetworkInterface.getNetworkInterfaces(); enumeration.hasMoreElements(); ) { 22 | NetworkInterface networkInterface = enumeration.nextElement(); 23 | 24 | for (Enumeration enumerationIpAddr = 25 | networkInterface.getInetAddresses(); enumerationIpAddr.hasMoreElements(); ) { 26 | InetAddress inetAddress = enumerationIpAddr.nextElement(); 27 | 28 | if (!inetAddress.isLoopbackAddress() && inetAddress.getAddress().length == 4) { 29 | deviceIpAddress = inetAddress.getHostAddress(); 30 | } 31 | } 32 | } 33 | } catch (SocketException e) { 34 | Log.e(TAG, "SocketException:" + e.getMessage()); 35 | } 36 | 37 | return deviceIpAddress; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 14 | 20 | 21 | 22 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 文件传输助手 3 | 服务已开启 4 | 服务未开启 5 | 请确保连接设备在同一个 WI-FI 下,\n或连到此设备的热点上 6 | 复制成功,请在连接设备的浏览器中打开 7 | 启动HTTP服务失败 8 | 正在获取地址… 9 | 请在浏览器地址栏完整输入 10 | 点击上面图标开启服务 11 | 取消 12 | 收起 13 | 确定 14 | 复制地址 15 | http://%1$s:%2$d 16 | 权限获取 17 | 本APP需要获取您SD卡的读写权限用来保存电脑端传入的文件 18 | 开启权限 19 | 目前还没有传输任何文件\n点击右下脚按钮,开始文件传输吧~ 20 | 安装 21 | 卸载 22 | %1$s(v%2$s) 23 | 未安装可以打开此文件的应用 24 | 全部删除 25 | 确定全部删除吗? 26 | 分享 27 | 删除 28 | 上传文件 29 | 文件读取失败 30 | 上传成功,请刷新网页端 31 | 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FileTransfer 2 | ![](https://github.com/CPPAlien/FileTransfer/raw/master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png) 3 | 4 | Transfer any files from PC to your phone easily. 5 | 6 | https://www.youtube.com/watch?v=NUNaORa1YzM 7 | 8 | [![](http://7xq276.com2.z0.glb.qiniucdn.com/google_play.png)](https://play.google.com/store/apps/details?id=me.pengtao.filetransfer) 9 | 10 | **If you are banned by GFW. You can watch the video or download apk by ways below:** 11 | 12 | Video: https://v.qq.com/x/page/x0618rp8w9x.html 13 | 14 | APK: http://d.6short.com/transfer 15 | 16 | ### What Next 17 | 1, Two-way transfer between PC and Phone. 18 | 19 | 2, Support plain text send. 20 | 21 | ### We Need you 22 | If you have any ideas for this app, welcome to submit an issue. 23 | 24 | If you want to add some features, welcome to pull request. 25 | 26 | ## Thanks 27 | The idea and some code of this app are from [WifiTransfer](https://github.com/baidusoso/WifiTransfer). 28 | Thanks for [baidusoso](https://github.com/baidusoso). 29 | 30 | ## LICENSE 31 | ``` 32 | Copyright (c) 2018 CPPAlien 33 | 34 | Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 (the "License"); 35 | you may not use this file except in compliance with the License. 36 | You may obtain a copy of the License at 37 | 38 | https://github.com/CPPAlien/FileTransfer/blob/master/LICENSE 39 | 40 | Unless required by applicable law or agreed to in writing, software 41 | distributed under the License is distributed on an "AS IS" BASIS, 42 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 | See the License for the specific language governing permissions and 44 | limitations under the License. 45 | ``` 46 | 47 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\program\AndroidSdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -keep public class * implements com.bumptech.glide.module.GlideModule 19 | -keep public class * extends com.bumptech.glide.module.AppGlideModule 20 | -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { 21 | **[] $VALUES; 22 | public *; 23 | } 24 | 25 | -keep class com.growingio.android.sdk.** { 26 | *; 27 | } 28 | -dontwarn com.growingio.android.sdk.** 29 | -keepnames class * extends android.view.View 30 | -keep class * extends android.app.Fragment { 31 | public void setUserVisibleHint(boolean); 32 | public void onHiddenChanged(boolean); 33 | public void onResume(); 34 | public void onPause(); 35 | } 36 | -keep class android.support.v4.app.Fragment { 37 | public void setUserVisibleHint(boolean); 38 | public void onHiddenChanged(boolean); 39 | public void onResume(); 40 | public void onPause(); 41 | } 42 | -keep class * extends android.support.v4.app.Fragment { 43 | public void setUserVisibleHint(boolean); 44 | public void onHiddenChanged(boolean); 45 | public void onResume(); 46 | public void onPause(); 47 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'com.google.gms.google-services' 4 | id 'com.google.firebase.crashlytics' 5 | } 6 | def cmd = 'git rev-list --no-merges --count HEAD master' 7 | def gitVersion = Integer.parseInt(cmd.execute().text.trim()) 8 | 9 | android { 10 | compileSdkVersion 33 11 | 12 | defaultConfig { 13 | minSdkVersion 19 14 | targetSdkVersion 33 15 | versionCode gitVersion 16 | versionName "1.4.0" 17 | } 18 | compileOptions { 19 | sourceCompatibility JavaVersion.VERSION_1_8 20 | targetCompatibility JavaVersion.VERSION_1_8 21 | } 22 | dataBinding { 23 | enabled = true 24 | } 25 | buildTypes { 26 | release { 27 | minifyEnabled false 28 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 29 | } 30 | } 31 | } 32 | 33 | dependencies { 34 | implementation fileTree(dir: 'libs', include: "*.jar") 35 | implementation platform('com.google.firebase:firebase-bom:30.2.0') 36 | implementation 'com.google.firebase:firebase-analytics' 37 | implementation 'com.google.firebase:firebase-crashlytics' 38 | implementation 'com.google.android.material:material:1.6.1' 39 | implementation 'com.chauthai.swipereveallayout:swipe-reveal-layout:1.4.1' 40 | implementation 'com.jakewharton:butterknife:10.2.3' 41 | annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' 42 | implementation 'com.github.bumptech.glide:glide:4.13.0' 43 | annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0' 44 | implementation("com.hwangjr.rxbus:rxbus:1.0.5") { 45 | exclude group: 'com.jakewharton.timber', module: 'timber' 46 | } 47 | implementation "com.koushikdutta.async:androidasync:3.1.0" 48 | implementation 'com.jakewharton.timber:timber:4.1.2' 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | FileTransfer 4 | Server is enabled 5 | Server is disabled 6 | Connecting device should in same WIFI, \n or connected the hotspot of this device 7 | Start HTTP server failed 8 | Retrieving wlan address… 9 | Please open the following address 10 | Click icon above to enable server 11 | Cancel 12 | Hide 13 | Sure 14 | Copied, open in browser of connected device 15 | Copy Address 16 | http://%1$s:%2$d 17 | permission request 18 | The App needs the permission to save files in sdcard 19 | enable permission 20 | Empty now\nClick the button below, and start file transfer~ 21 | Install 22 | Uninstall 23 | %1$s(v%2$s) 24 | Cannot open it 25 | Delete All 26 | Delete All? 27 | Share 28 | Delete 29 | Upload Files 30 | File fetch failed 31 | Upload success, please refresh web page 32 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 15 | 16 | 23 | 24 | 42 | 43 | 48 | 49 | -------------------------------------------------------------------------------- /app/src/main/assets/wifi/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 24 | 25 | 26 | 27 | 28 |
29 |
30 |
31 | 34 |
35 |
36 |
37 |
38 | 39 |
40 |
41 |
42 |
43 | 53 |
54 |
55 |
56 | 57 | -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/util/FileType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 CPPAlien 3 | * 4 | * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/CPPAlien/FileTransfer/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package me.pengtao.filetransfer.util; 18 | 19 | /** 20 | * @author CPPAlien 21 | */ 22 | public class FileType { 23 | public static final String FileTypes[][] = { 24 | // File Image 25 | {".png", ".jpg", ".jpeg", ".gif", ".bmp"}, 26 | // File Audio 27 | {".mp3", ".wav", ".ogg", "midi"}, 28 | // File Video 29 | {".mp4", ".rmvb", ".avi", ".flv", ".3gp"}, 30 | // File Web Text 31 | {".jsp", ".html", ".htm", ".js", ".php"}, 32 | // File Text 33 | {".txt", ".c", ".cpp", ".xml", ".py", ".json", ".log"}, 34 | // File Excel 35 | {".xls", ".xlsx"}, 36 | // File Word 37 | {".doc", ".docx"}, 38 | // File PPT 39 | {".ppt", ".pptx"}, 40 | // File PDF 41 | {".pdf"}, 42 | // File Package 43 | {".jar", ".zip", ".rar", ".gz"}, 44 | // APK 45 | {".apk"}}; 46 | public static final int TYPE_IMAGE = 100; 47 | public static final int TYPE_AUDIO = 200; 48 | public static final int TYPE_VIDEO = 300; 49 | public static final int TYPE_WEB = 400; 50 | public static final int TYPE_TEXT = 500; 51 | public static final int TYPE_EXCEL = 600; 52 | public static final int TYPE_WORD = 700; 53 | public static final int TYPE_PPT = 800; 54 | public static final int TYPE_PDF = 900; 55 | public static final int TYPE_PACKAGE = 1000; 56 | public static final int TYPE_APK = 1100; 57 | public static final int TYPE_UNKNOWN = -1; 58 | public static final int TypeStart[] = {TYPE_IMAGE, TYPE_AUDIO, TYPE_VIDEO, 59 | TYPE_WEB, TYPE_TEXT, TYPE_EXCEL, TYPE_WORD, TYPE_PPT, TYPE_PDF, TYPE_PACKAGE, TYPE_APK}; 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/me/pengtao/filetransfer/FileModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 CPPAlien 3 | * 4 | * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://github.com/CPPAlien/FileTransfer/blob/master/LICENSE 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package me.pengtao.filetransfer; 17 | 18 | import android.graphics.drawable.Drawable; 19 | 20 | /** 21 | * @author CPPAlien 22 | */ 23 | public class FileModel { 24 | private String path; 25 | private String version; 26 | private String size; 27 | private String name; 28 | private String packageName; 29 | private int fileType; 30 | private boolean installed; 31 | private Drawable icon; 32 | 33 | public Drawable getIcon() { 34 | return icon; 35 | } 36 | 37 | public void setIcon(Drawable icon) { 38 | this.icon = icon; 39 | } 40 | 41 | public String getPath() { 42 | return path; 43 | } 44 | 45 | public void setPath(String path) { 46 | this.path = path; 47 | } 48 | 49 | public String getVersion() { 50 | return version; 51 | } 52 | 53 | public void setVersion(String version) { 54 | this.version = version; 55 | } 56 | 57 | public String getSize() { 58 | return size; 59 | } 60 | 61 | public void setSize(String size) { 62 | this.size = size; 63 | } 64 | 65 | public String getName() { 66 | return name; 67 | } 68 | 69 | public void setName(String name) { 70 | this.name = name; 71 | } 72 | 73 | public String getPackageName() { 74 | return packageName; 75 | } 76 | 77 | public void setPackageName(String packageName) { 78 | this.packageName = packageName; 79 | } 80 | 81 | public boolean isInstalled() { 82 | return installed; 83 | } 84 | 85 | public void setInstalled(boolean installed) { 86 | this.installed = installed; 87 | } 88 | 89 | public int getFileType() { 90 | return fileType; 91 | } 92 | 93 | public FileModel setFileType(final int fileType) { 94 | this.fileType = fileType; 95 | return this; 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 58 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_popup_menu_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 15 | 23 | 31 | 41 | 52 | 57 | 61 |