├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── banner.jpg │ │ │ │ ├── error.jpg │ │ │ │ ├── loading.jpg │ │ │ │ ├── selector_bg_accent.xml │ │ │ │ ├── gradient_dark_gone.xml │ │ │ │ ├── gradient_light_gone.xml │ │ │ │ ├── gradient_light_gone_reverse.xml │ │ │ │ ├── gradient_gone_black.xml │ │ │ │ ├── gradient_gone_white.xml │ │ │ │ ├── gradient_angle_light.xml │ │ │ │ ├── gradient_darkgone_dark.xml │ │ │ │ ├── ic_info_white_24dp.xml │ │ │ │ ├── ic_menu_sort.xml │ │ │ │ ├── ic_menu_flag.xml │ │ │ │ ├── ic_check.xml │ │ │ │ ├── ic_back_arrow.xml │ │ │ │ ├── rounding_red.xml │ │ │ │ ├── rounding_left_orange.xml │ │ │ │ ├── rounding_left_red.xml │ │ │ │ ├── rounding_right_acent.xml │ │ │ │ ├── rounding_right_orange.xml │ │ │ │ ├── rounding_right_red.xml │ │ │ │ ├── rounding_right_grey.xml │ │ │ │ ├── ic_menu_flag_add.xml │ │ │ │ ├── rounding_left_primary_dark.xml │ │ │ │ ├── disk.xml │ │ │ │ ├── ic_microphone.xml │ │ │ │ ├── ic_monitor.xml │ │ │ │ ├── ic_menu_play.xml │ │ │ │ ├── ic_arrow_down.xml │ │ │ │ ├── ic_menu_fav.xml │ │ │ │ ├── ic_torrent_file.xml │ │ │ │ ├── ic_menu_hist.xml │ │ │ │ ├── ic_eye.xml │ │ │ │ ├── ic_star.xml │ │ │ │ ├── ic_menu_search.xml │ │ │ │ ├── ic_mp4_file.xml │ │ │ │ ├── ic_menu_list.xml │ │ │ │ ├── ic_paint.xml │ │ │ │ ├── ic_menu_key.xml │ │ │ │ ├── download.xml │ │ │ │ ├── ic_menu_user.xml │ │ │ │ ├── double_arrow.xml │ │ │ │ ├── ic_kinopoisk.xml │ │ │ │ ├── item_select.xml │ │ │ │ ├── item_select_green_white.xml │ │ │ │ ├── item_select_dark_light.xml │ │ │ │ ├── item_select_item_v7.xml │ │ │ │ ├── ic_folder.xml │ │ │ │ ├── ic_flat_favor.xml │ │ │ │ ├── ic_stars.xml │ │ │ │ ├── item_select_gone.xml │ │ │ │ ├── ic_menu_web.xml │ │ │ │ ├── ic_mp4_file_view.xml │ │ │ │ ├── ic_menu_refresh.xml │ │ │ │ ├── ic_menu_pro.xml │ │ │ │ ├── ic_flat_animate.xml │ │ │ │ ├── item_select_circle_a.xml │ │ │ │ ├── item_select_circle.xml │ │ │ │ ├── ic_magnet.xml │ │ │ │ ├── ic_folder_view.xml │ │ │ │ ├── ic_menu_settings.xml │ │ │ │ ├── ic_menu_fav_add.xml │ │ │ │ ├── ic_menu_db.xml │ │ │ │ └── ic_flat_serialvideo.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_background.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_background.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_background.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_background.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_background.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── xml │ │ │ │ ├── provider_paths.xml │ │ │ │ ├── searchable.xml │ │ │ │ ├── pref_acc.xml │ │ │ │ ├── pref_headers.xml │ │ │ │ └── pref_disabled.xml │ │ │ ├── anim │ │ │ │ ├── splash.xml │ │ │ │ ├── scale_in_tv.xml │ │ │ │ ├── scale_out_tv.xml │ │ │ │ ├── left_to_right.xml │ │ │ │ ├── left_to_right_2.xml │ │ │ │ ├── right_to_left.xml │ │ │ │ └── right_to_left_2.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ └── ic_launcher.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ ├── layout │ │ │ │ ├── fg_pb.xml │ │ │ │ ├── separ_horizont_strict.xml │ │ │ │ ├── fragment_img.xml │ │ │ │ ├── fg_pb_horiz.xml │ │ │ │ ├── search_view.xml │ │ │ │ ├── fg_eye_green.xml │ │ │ │ ├── fg_card_selected.xml │ │ │ │ ├── item_list.xml │ │ │ │ ├── separ_horizont.xml │ │ │ │ ├── item_catalog_images_noselect.xml │ │ │ │ ├── fragment_catalog.xml │ │ │ │ ├── item_catalog_images.xml │ │ │ │ ├── activity_reclam.xml │ │ │ │ ├── activity_splash.xml │ │ │ │ ├── fragment_reclam_video.xml │ │ │ │ ├── activity_img.xml │ │ │ │ ├── item_list_content.xml │ │ │ │ ├── fragment_detail_tor.xml │ │ │ │ ├── fragment_detail_vid.xml │ │ │ │ ├── activity_base.xml │ │ │ │ ├── activity_detail.xml │ │ │ │ └── item_search.xml │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── ids.xml │ │ │ │ └── colors.xml │ │ │ ├── layout-w900dp │ │ │ │ ├── item_list.xml │ │ │ │ └── activity_base.xml │ │ │ ├── layout-v21 │ │ │ │ └── activity_splash.xml │ │ │ └── menu │ │ │ │ ├── detail_tv.xml │ │ │ │ ├── menu_base.xml │ │ │ │ └── drawer_catalog.xml │ │ └── java │ │ │ └── com │ │ │ └── kinotor │ │ │ └── tiar │ │ │ └── kinotor │ │ │ ├── utils │ │ │ ├── OnTaskLocationCallback.java │ │ │ ├── OnTaskUrlCallback.java │ │ │ ├── OnTaskVideoCallback.java │ │ │ ├── OnTaskTorrentCallback.java │ │ │ ├── OnTaskSearchCallback.java │ │ │ ├── OnTaskCallback.java │ │ │ ├── RoundedTransformation.java │ │ │ └── SignatureUtil.java │ │ │ ├── items │ │ │ ├── ItemMain.java │ │ │ ├── ItemSearch.java │ │ │ ├── ItemNewTor.java │ │ │ ├── ItemNewVideo.java │ │ │ └── ItemTorrent.java │ │ │ ├── parser │ │ │ ├── catalog │ │ │ │ └── filmix │ │ │ │ │ ├── ParserFilmixHistUpd.java │ │ │ │ │ └── ParserFilmixFavCheck.java │ │ │ ├── GetMagnet.java │ │ │ ├── torrents │ │ │ │ ├── RutrackerMagnet.java │ │ │ │ ├── KinozalLogin.java │ │ │ │ ├── AnidubTrLogin.java │ │ │ │ ├── HurtomLogin.java │ │ │ │ ├── GreenTeaTrLogin.java │ │ │ │ ├── RutrackerLogin.java │ │ │ │ ├── FreerutorUrl.java │ │ │ │ ├── KinozalMagnet.java │ │ │ │ └── FreerutorLocation.java │ │ │ ├── video │ │ │ │ ├── animedia │ │ │ │ │ └── AnimediaUrl.java │ │ │ │ └── kinodom │ │ │ │ │ ├── KinodomUrl.java │ │ │ │ │ └── KinodomLogin.java │ │ │ ├── GetLocation.java │ │ │ └── GetQualBluRay.java │ │ │ └── ui │ │ │ ├── fragments │ │ │ └── ImageFragment.kt │ │ │ ├── reclam │ │ │ └── SampleVideoPlayer.java │ │ │ └── dialogs │ │ │ └── DialogSearch.java │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── kinotor │ │ │ └── tiar │ │ │ └── kinotor │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── kinotor │ │ └── tiar │ │ └── kinotor │ │ └── ExampleInstrumentedTest.java ├── google-services.json └── proguard-rules.pro ├── settings.gradle ├── .idea ├── .gitignore ├── copyright │ └── profiles_settings.xml ├── caches │ └── build_file_checksums.ser ├── encodings.xml ├── vcs.xml ├── dictionaries │ └── Tiar.xml ├── inspectionProfiles │ ├── profiles_settings.xml │ └── Project_Default.xml ├── modules.xml ├── runConfigurations.xml ├── compiler.xml ├── gradle.xml └── jarRepositories.xml ├── screenshots ├── m1.png ├── m2.png ├── m3.png ├── tv1.png ├── tv2.png ├── tv3.png ├── ico_32.png ├── ico_512.png ├── ico_64.png ├── m1_300.png ├── m2_300.png ├── m3_300.png ├── tv1_300.png ├── tv2_300.png └── tv3_300.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── local.properties ├── gradle.properties ├── Kinotor.iml ├── LICENSE ├── google-services.json ├── README.md └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml -------------------------------------------------------------------------------- /screenshots/m1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m1.png -------------------------------------------------------------------------------- /screenshots/m2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m2.png -------------------------------------------------------------------------------- /screenshots/m3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m3.png -------------------------------------------------------------------------------- /screenshots/tv1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv1.png -------------------------------------------------------------------------------- /screenshots/tv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv2.png -------------------------------------------------------------------------------- /screenshots/tv3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv3.png -------------------------------------------------------------------------------- /screenshots/ico_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/ico_32.png -------------------------------------------------------------------------------- /screenshots/ico_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/ico_512.png -------------------------------------------------------------------------------- /screenshots/ico_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/ico_64.png -------------------------------------------------------------------------------- /screenshots/m1_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m1_300.png -------------------------------------------------------------------------------- /screenshots/m2_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m2_300.png -------------------------------------------------------------------------------- /screenshots/m3_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/m3_300.png -------------------------------------------------------------------------------- /screenshots/tv1_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv1_300.png -------------------------------------------------------------------------------- /screenshots/tv2_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv2_300.png -------------------------------------------------------------------------------- /screenshots/tv3_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/screenshots/tv3_300.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/drawable/banner.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/error.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/drawable/error.jpg -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/drawable/loading.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tiarait/KinoTor/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/anim/splash.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_accent.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskLocationCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | /** 4 | * Created by Tiar on 04.2018. 5 | */ 6 | public interface OnTaskLocationCallback { 7 | void OnCompleted(String location); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskUrlCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | /** 4 | * Created by Tiar on 04.2018. 5 | */ 6 | public interface OnTaskUrlCallback { 7 | void OnCompleted(String[] quality, String[] url); 8 | } 9 | -------------------------------------------------------------------------------- /.idea/dictionaries/Tiar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | animeda 5 | animedia 6 | animevost 7 | itempath 8 | 9 | 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Apr 20 14:46:32 MSK 2019 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-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskVideoCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import com.kinotor.tiar.kinotor.items.ItemVideo; 4 | 5 | /** 6 | * Created by Tiar on 04.2018. 7 | */ 8 | public interface OnTaskVideoCallback { 9 | void OnCompleted(ItemVideo item); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskTorrentCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import com.kinotor.tiar.kinotor.items.ItemTorrent; 4 | 5 | /** 6 | * Created by Tiar on 04.2018. 7 | */ 8 | public interface OnTaskTorrentCallback { 9 | void OnCompleted(ItemTorrent item); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_dark_gone.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_light_gone.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_light_gone_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskSearchCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import com.kinotor.tiar.kinotor.items.ItemSearch; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by Tiar on 04.2018. 9 | */ 10 | public interface OnTaskSearchCallback { 11 | void OnCompleted(List items); 12 | } 13 | -------------------------------------------------------------------------------- /local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Wed Oct 21 13:35:26 MSK 2020 8 | sdk.dir=B\:\\Program\\Android\\Sdk 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/OnTaskCallback.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import com.kinotor.tiar.kinotor.items.ItemHtml; 4 | 5 | import java.util.ArrayList; 6 | 7 | /** 8 | * Created by Tiar on 04.2018. 9 | */ 10 | public interface OnTaskCallback { 11 | void OnCompleted(ArrayList items, ItemHtml itempath); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/res/anim/scale_in_tv.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/scale_out_tv.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_gone_black.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_gone_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/left_to_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/left_to_right_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/right_to_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/right_to_left_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_angle_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_darkgone_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fg_pb.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_sort.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_flag.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/separ_horizont_strict.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_img.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back_arrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_left_orange.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_left_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_right_acent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_right_orange.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_right_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_right_grey.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/test/java/com/kinotor/tiar/kinotor/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package co.kinotor.tiar.kinotor; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_flag_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounding_left_primary_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/disk.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_microphone.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fg_pb_horiz.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/search_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fg_eye_green.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 200dp 5 | 200dp 6 | 16dp 7 | 8 | 16dp 9 | 16dp 10 | 8dp 11 | 156dp 12 | 88dp 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_monitor.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fg_card_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_list.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_fav.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_torrent_file.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_hist.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_eye.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/separ_horizont.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 17 | 22 | -------------------------------------------------------------------------------- /Kinotor.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/kinotor/tiar/kinotor/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package co.kinotor.tiar.kinotor; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("co.koshara.tiar.koshara", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_mp4_file.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_catalog_images_noselect.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 15 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_catalog.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_catalog_images.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 16 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_paint.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_reclam.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout-w900dp/item_list.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_key.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout-v21/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/download.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2023 Tiarait 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "417026368571", 4 | "firebase_url": "https://kinotor-214809.firebaseio.com", 5 | "project_id": "kinotor-214809", 6 | "storage_bucket": "kinotor-214809.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:417026368571:android:20b97ca7eb5c142e", 12 | "android_client_info": { 13 | "package_name": "com.kinotor.tiar" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "417026368571-ocikn6cs5jk93hqaei96np4h02o91n88.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyBXLGLSEBTA19F47JYqO2YFRxPLNeng0qs" 25 | } 26 | ], 27 | "services": { 28 | "appinvite_service": { 29 | "other_platform_oauth_client": [ 30 | { 31 | "client_id": "417026368571-ocikn6cs5jk93hqaei96np4h02o91n88.apps.googleusercontent.com", 32 | "client_type": 3 33 | } 34 | ] 35 | } 36 | } 37 | } 38 | ], 39 | "configuration_version": "1" 40 | } -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "417026368571", 4 | "firebase_url": "https://kinotor-214809.firebaseio.com", 5 | "project_id": "kinotor-214809", 6 | "storage_bucket": "kinotor-214809.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:417026368571:android:20b97ca7eb5c142e", 12 | "android_client_info": { 13 | "package_name": "com.kinotor.tiar" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "417026368571-ocikn6cs5jk93hqaei96np4h02o91n88.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyBXLGLSEBTA19F47JYqO2YFRxPLNeng0qs" 25 | } 26 | ], 27 | "services": { 28 | "appinvite_service": { 29 | "other_platform_oauth_client": [ 30 | { 31 | "client_id": "417026368571-ocikn6cs5jk93hqaei96np4h02o91n88.apps.googleusercontent.com", 32 | "client_type": 3 33 | } 34 | ] 35 | } 36 | } 37 | } 38 | ], 39 | "configuration_version": "1" 40 | } -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/items/ItemMain.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.items; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class ItemMain { 7 | public static int cur_items = 0; 8 | public static String cur_url = "http://koshara.co/nerufilm/"; 9 | //stat for parse base catalog 10 | public static String xs_search = ""; 11 | public static String xs_field = "defaultsort"; 12 | public static String xs_value = ""; 13 | 14 | 15 | public static List ITEMS = new ArrayList(); 16 | public void addItem(Item item) { 17 | ITEMS.add(item); 18 | } 19 | public void delItem() { 20 | ITEMS.clear(); 21 | } 22 | 23 | 24 | public static class Item { 25 | public final int id; 26 | public final String name; 27 | final String details; 28 | 29 | public Item(int id, String name, String details) { 30 | this.id = id; 31 | this.name = name; 32 | this.details = details; 33 | } 34 | 35 | public String getName() { 36 | return name; 37 | } 38 | public String getdetails() { 39 | return details; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #14181c 4 | #14181c 5 | #9014181c 6 | #222b31 7 | #506470 8 | #25ae88 9 | #148162 10 | #5025ae88 11 | #0e5a45 12 | #50000000 13 | #00000000 14 | #FFFFFF 15 | #7FFFFFFF 16 | #c3c3c3 17 | #70c3c3c3 18 | #000 19 | #90000000 20 | #f88901 21 | #ad0019 22 | #80203342 23 | #99203342 24 | #80000000 25 | 26 | -------------------------------------------------------------------------------- /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\Android\sdk/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 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -ignorewarnings 27 | -dontwarn com.daimajia.** 28 | 29 | -keep class com.google.obf.** { *; } 30 | -keep interface com.google.obf.** { *; } 31 | 32 | -keep class com.google.ads.interactivemedia.** { *; } 33 | -keep interface com.google.ads.interactivemedia.** { *; } -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/items/ItemSearch.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.items; 2 | 3 | /** 4 | * Created by Tiar on 24.09.2017. 5 | */ 6 | 7 | public class ItemSearch { 8 | public String title; 9 | private String subtitle; 10 | private String img; 11 | private String url; 12 | 13 | public ItemSearch(String title, String subtitle, String img, String url) { 14 | setTitle(title); 15 | setSubtitle(subtitle); 16 | setImg(img); 17 | setUrl(url); 18 | } 19 | //------------------Get--------------------------- 20 | 21 | public String getTitle() { 22 | return title; 23 | } 24 | 25 | public String getSubtitle() { 26 | return subtitle; 27 | } 28 | 29 | public String getImg() { 30 | return img; 31 | } 32 | 33 | public String getUrl() { 34 | return url; 35 | } 36 | 37 | 38 | //------------------Set--------------------------- 39 | 40 | public void setTitle(String title) { 41 | this.title = title; 42 | } 43 | 44 | public void setSubtitle(String subtitle) { 45 | this.subtitle = subtitle; 46 | } 47 | 48 | public void setImg(String img) { 49 | this.img = img; 50 | } 51 | public void setUrl(String url) { 52 | this.url = url; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_user.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/double_arrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 20 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_reclam_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 20 | 24 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_kinopoisk.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_green_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_dark_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_item_v7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_acc.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 20 | 23 | 26 | 29 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_headers.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 |
10 | 11 |
15 |
19 |
23 |
27 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/items/ItemNewTor.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.items; 2 | 3 | 4 | /** 5 | * Created by Tiar on 02.2018. 6 | */ 7 | 8 | public class ItemNewTor { 9 | String tortitle; 10 | String torurl; 11 | String url; 12 | String torsize; 13 | String tormagnet; 14 | String torsid; 15 | String torlich; 16 | String torcontent; 17 | 18 | public String getTortitle() { 19 | return tortitle; 20 | } 21 | 22 | public String getTorurl() { 23 | if (torurl != null) 24 | return torurl; 25 | else return "error"; 26 | } 27 | 28 | public String getUrl() { 29 | return url; 30 | } 31 | 32 | public String getTorsize() { 33 | return torsize; 34 | } 35 | 36 | public String getTormagnet() { 37 | if (tormagnet != null) 38 | return tormagnet; 39 | else return "error"; 40 | } 41 | 42 | public String getTorsid() { 43 | return torsid; 44 | } 45 | 46 | public String getTorlich() { 47 | return torlich; 48 | } 49 | 50 | public String getTorcontent() { 51 | return torcontent; 52 | } 53 | 54 | public ItemNewTor(String title, String url, String size, String torrent, String magnet, 55 | String sid, String lich, String content) { 56 | this.tortitle = title; 57 | this.url = url; 58 | this.torsize = size; 59 | this.torurl = torrent; 60 | this.tormagnet = magnet; 61 | this.torsid = sid; 62 | this.torlich = lich; 63 | this.torcontent = content; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flat_favor.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/RoundedTransformation.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.BitmapShader; 5 | import android.graphics.Canvas; 6 | import android.graphics.Paint; 7 | import android.graphics.RectF; 8 | import android.graphics.Shader; 9 | 10 | /** 11 | * Created by Tiar on 01.2019. 12 | */ 13 | public class RoundedTransformation implements com.squareup.picasso.Transformation { 14 | private final int radius; 15 | private final int margin; // dp 16 | 17 | // radius is corner radii in dp 18 | // margin is the board in dp 19 | public RoundedTransformation(final int radius, final int margin) { 20 | this.radius = radius; 21 | this.margin = margin; 22 | } 23 | 24 | @Override 25 | public Bitmap transform(final Bitmap source) { 26 | final Paint paint = new Paint(); 27 | paint.setAntiAlias(true); 28 | paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); 29 | 30 | Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); 31 | Canvas canvas = new Canvas(output); 32 | canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint); 33 | 34 | if (source != output) { 35 | source.recycle(); 36 | } 37 | 38 | return output; 39 | } 40 | 41 | @Override 42 | public String key() { 43 | return "rounded"; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stars.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_gone.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_img.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 15 | 16 | 21 | 22 | 23 | 28 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/catalog/filmix/ParserFilmixHistUpd.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.catalog.filmix; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Jsoup; 10 | import org.jsoup.nodes.Document; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class ParserFilmixHistUpd extends AsyncTask { 16 | 17 | 18 | public ParserFilmixHistUpd() { 19 | } 20 | 21 | @Override 22 | protected Void doInBackground(Void... voids) { 23 | Document d = getData(); 24 | if (d != null) { 25 | Statics.FILMIX_HIST = d.text(); 26 | } else { 27 | Statics.FILMIX_HIST = "null"; 28 | } 29 | return null; 30 | } 31 | 32 | 33 | private Document getData() { 34 | try { 35 | return Jsoup.connect(Statics.FILMIX_URL+"/api/movies/list_watched") 36 | .header("X-Requested-With", "XMLHttpRequest") 37 | .header("Cookie", Statics.FILMIX_COOCKIE.replace(",",";") +";") 38 | .referrer(Statics.FILMIX_URL+"/last_seen") 39 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 40 | .validateTLSCertificates(false) 41 | .timeout(30000).ignoreContentType(true).post(); 42 | } catch (Exception e) { 43 | e.printStackTrace(); 44 | return null; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_list_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | 20 | 28 | 29 | 30 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_mp4_file_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | 18 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/menu/detail_tv.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | 15 | 16 | 17 | 22 | 26 | 30 | 34 | 35 | 36 | 37 | 41 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_detail_tor.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 15 | 16 | 24 | 28 | 29 | 30 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_pro.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flat_animate.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_disabled.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 8 | 11 | 12 | 13 | 15 | 18 | 21 | 22 | 23 | 25 | 34 | 35 | 40 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_detail_vid.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 18 | 19 | 28 | 32 | 33 | 34 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_circle_a.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/GetMagnet.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 7 | 8 | import org.jsoup.Jsoup; 9 | import org.jsoup.nodes.Document; 10 | 11 | import java.io.IOException; 12 | 13 | import static android.content.ContentValues.TAG; 14 | 15 | /** 16 | * Created by Tiar on 02.2018. 17 | */ 18 | 19 | public class GetMagnet extends AsyncTask { 20 | private String url, location; 21 | private OnTaskLocationCallback callback; 22 | 23 | public GetMagnet(String url, OnTaskLocationCallback callback) { 24 | this.url = url; 25 | this.callback = callback; 26 | } 27 | 28 | @Override 29 | protected void onPostExecute(Void aVoid) { 30 | callback.OnCompleted(location); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | location = magnet(get(url)); 36 | return null; 37 | } 38 | 39 | private String magnet(Document data) { 40 | if (data != null) { 41 | if (data.html().contains("magnet:?")) 42 | return data.select("a[href^='magnet:?']").attr("href"); 43 | else return "error"; 44 | } else 45 | return "error"; 46 | } 47 | 48 | private Document get(String url) { 49 | try { 50 | return Jsoup.connect(url) 51 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 52 | .validateTLSCertificates(false) 53 | .timeout(5000).ignoreContentType(true).get(); 54 | } catch (IOException e) { 55 | e.printStackTrace(); 56 | Log.d(TAG, "GetLocation: " + url); 57 | Log.d(TAG, "Location: error"); 58 | return null; 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_select_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 47 | 48 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_magnet.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 21 | 25 | 29 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/RutrackerMagnet.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Jsoup; 10 | import org.jsoup.nodes.Document; 11 | 12 | import java.io.IOException; 13 | 14 | import static android.content.ContentValues.TAG; 15 | 16 | /** 17 | * Created by Tiar on 02.2018. 18 | */ 19 | 20 | public class RutrackerMagnet extends AsyncTask { 21 | private String url, location; 22 | private OnTaskLocationCallback callback; 23 | 24 | public RutrackerMagnet(String url, OnTaskLocationCallback callback) { 25 | this.url = url; 26 | this.callback = callback; 27 | } 28 | 29 | @Override 30 | protected void onPostExecute(Void aVoid) { 31 | callback.OnCompleted(location); 32 | } 33 | 34 | @Override 35 | protected Void doInBackground(Void... voids) { 36 | location = magnet(get(url)); 37 | Log.d("RutrackerMagnet", "magnet: " + location); 38 | return null; 39 | } 40 | 41 | private String magnet(Document data) { 42 | if (data != null) { 43 | if (data.html().contains("magnet:?")) { 44 | return data.selectFirst("a[href^='magnet:?']").attr("href").trim(); 45 | } else return "error"; 46 | } else 47 | return "error"; 48 | } 49 | 50 | private Document get(String url) { 51 | try { 52 | return Jsoup.connect(url) 53 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 54 | .header("Cookie", Statics.RUTRACKER_COOCKIE.replace(",",";")+";") 55 | .validateTLSCertificates(false) 56 | .timeout(5000).ignoreContentType(true).get(); 57 | } catch (IOException e) { 58 | e.printStackTrace(); 59 | return null; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/catalog/filmix/ParserFilmixFavCheck.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.catalog.filmix; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import com.kinotor.tiar.kinotor.items.Statics; 6 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 7 | 8 | import org.jsoup.Jsoup; 9 | import org.jsoup.nodes.Document; 10 | 11 | /** 12 | * Created by Tiar on 08.2018. 13 | */ 14 | public class ParserFilmixFavCheck extends AsyncTask { 15 | private String url, result = "error"; 16 | private OnTaskLocationCallback callback; 17 | 18 | 19 | public ParserFilmixFavCheck(String url, OnTaskLocationCallback callback) { 20 | this.url = url; 21 | this.callback = callback; 22 | } 23 | 24 | @Override 25 | protected void onPostExecute(Void aVoid) { 26 | callback.OnCompleted(result.trim()); 27 | 28 | super.onPostExecute(aVoid); 29 | } 30 | 31 | @Override 32 | protected Void doInBackground(Void... voids) { 33 | ParseHtml(Getdata(url)); 34 | return null; 35 | } 36 | 37 | private void ParseHtml(Document data) { 38 | if (data != null) { 39 | if (data.html().contains("favorite active")) 40 | result = "favor"; 41 | if (data.html().contains("future active")) { 42 | if (result.contains("error")) 43 | result = "later"; 44 | else result += " later"; 45 | } 46 | } 47 | } 48 | 49 | private Document Getdata(String url) { 50 | try { 51 | return Jsoup.connect(url) 52 | .header("X-Requested-With", "XMLHttpRequest") 53 | .header("Cookie", Statics.FILMIX_COOCKIE.replace(",",";") +";") 54 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 55 | .validateTLSCertificates(false) 56 | .timeout(30000).ignoreContentType(true).get(); 57 | } catch (Exception e) { 58 | e.printStackTrace(); 59 | return null; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_base.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 27 | 28 | 29 | 30 | 39 | 40 | 41 | 42 | 47 | 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/video/animedia/AnimediaUrl.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.video.animedia; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.utils.OnTaskUrlCallback; 7 | 8 | import java.util.ArrayList; 9 | 10 | /** 11 | * Created by Tiar on 02.2018. 12 | */ 13 | 14 | public class AnimediaUrl extends AsyncTask { 15 | private String url; 16 | private String[] quality_arr, url_arr; 17 | private OnTaskUrlCallback callback; 18 | 19 | public AnimediaUrl(String url, OnTaskUrlCallback callback) { 20 | this.url = url; 21 | this.callback = callback; 22 | } 23 | 24 | @Override 25 | protected void onPostExecute(Void aVoid) { 26 | callback.OnCompleted(quality_arr, url_arr); 27 | } 28 | 29 | @Override 30 | protected Void doInBackground(Void... voids) { 31 | // Document d = getData(url); 32 | // if (d.html().contains("file: \"")) { 33 | // url = d.html().split("file: \"")[1].split("\"")[0]; 34 | // if (url.startsWith("//")) 35 | // url = "http:"+url; 36 | // else if (url.startsWith("://")) 37 | // url = "http"+url; 38 | Log.d("Animedia", "doInBackground: "+url); 39 | setUrl(); 40 | // } else Log.e("Animedia", "doInBackground1: "+d.html()); 41 | return null; 42 | } 43 | 44 | private void setUrl(){ 45 | final ArrayList q = new ArrayList<>(); 46 | final ArrayList u = new ArrayList<>(); 47 | // Document d = getData(url); 48 | String type = " (m3u8)"; 49 | if (url.endsWith(".m3u8")) { 50 | q.add("HLS (m3u8)"); 51 | u.add(url.trim()); 52 | add(q, u); 53 | } 54 | 55 | if (q.isEmpty()){ 56 | q.add("Видео недоступно"); 57 | u.add("error"); 58 | add(q, u); 59 | } 60 | } 61 | private void add(ArrayList q, ArrayList u) { 62 | quality_arr = q.toArray(new String[q.size()]); 63 | url_arr = u.toArray(new String[u.size()]); 64 | } 65 | } -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/KinozalLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class KinozalLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public KinozalLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("test", "doInBackground: "+cookies); 39 | if (cookies.contains("uid=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("uid")) { 42 | result = cookies.replace("{","").replace("}",""); 43 | } else result = "null"; 44 | } else result = "null"; 45 | return null; 46 | } 47 | 48 | private Connection.Response Getdata() { 49 | try { 50 | return Jsoup 51 | .connect(Statics.KINOZAL_URL + "/takelogin.php") 52 | .method(Connection.Method.POST) 53 | .header("X-Requested-With", "XMLHttpRequest") 54 | .data("username", login) 55 | .data("password", pass) 56 | .data("returnto", "") 57 | .execute(); 58 | } catch (Exception e) { 59 | e.printStackTrace(); 60 | return null; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/video/kinodom/KinodomUrl.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.video.kinodom; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import com.kinotor.tiar.kinotor.utils.OnTaskUrlCallback; 6 | 7 | import java.util.ArrayList; 8 | 9 | /** 10 | * Created by Tiar on 02.2018. 11 | */ 12 | 13 | public class KinodomUrl extends AsyncTask { 14 | private String url; 15 | private String[] quality_arr, url_arr; 16 | private OnTaskUrlCallback callback; 17 | 18 | public KinodomUrl(String url, OnTaskUrlCallback callback) { 19 | this.url = url; 20 | this.callback = callback; 21 | } 22 | 23 | @Override 24 | protected void onPostExecute(Void aVoid) { 25 | callback.OnCompleted(quality_arr, url_arr); 26 | } 27 | 28 | @Override 29 | protected Void doInBackground(Void... voids) { 30 | getMp4(); 31 | return null; 32 | } 33 | 34 | private void getMp4() { 35 | if (url.contains("[")){ 36 | String qual = url.split("\\[")[1]; 37 | url = url.split("\\[")[0]; 38 | setUrl(qual); 39 | } else { 40 | setUrl(url); 41 | } 42 | // setUrl(url); 43 | } 44 | 45 | private void setUrl(String qual){ 46 | final ArrayList q = new ArrayList<>(); 47 | final ArrayList u = new ArrayList<>(); 48 | 49 | if (qual.contains("480")) { 50 | q.add("480 (mp4)"); 51 | u.add(url + "480.mp4"); 52 | } 53 | if (qual.contains("720p")) { 54 | q.add("720 (mp4)"); 55 | u.add(url + "720.mp4"); 56 | } else if (qual.contains("720")) { 57 | q.add("720 (mp4)"); 58 | u.add(url + "720.mp4"); 59 | } 60 | if (!q.isEmpty()) 61 | add(q, u); 62 | else { 63 | q.add("видео не доступно"); 64 | u.add("error"); 65 | add(q, u); 66 | } 67 | } 68 | 69 | private void add(ArrayList q, ArrayList u) { 70 | quality_arr = q.toArray(new String[q.size()]); 71 | url_arr = u.toArray(new String[u.size()]); 72 | } 73 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_fav_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/ui/fragments/ImageFragment.kt: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.ui.fragments 2 | 3 | import android.os.Bundle 4 | import android.support.v4.app.Fragment 5 | import android.util.Log 6 | import android.view.LayoutInflater 7 | import android.view.View 8 | import android.view.ViewGroup 9 | import com.github.chrisbanes.photoview.PhotoView 10 | import com.kinotor.tiar.kinotor.R 11 | import com.squareup.picasso.Picasso 12 | 13 | /** 14 | * Created by Tiar on 10.2018. 15 | */ 16 | class ImageFragment : Fragment() { 17 | private val TAG = "ImageFragment" 18 | private var images = "" 19 | private var positionPost: Int = 0 20 | 21 | 22 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, 23 | savedInstanceState: Bundle?): View? { 24 | val rootView = inflater.inflate(R.layout.fragment_img, container, false) 25 | 26 | images = arguments!!.getString(ARG_SECTION_IMG)!!.replace("[","") 27 | .replace("]","") 28 | positionPost = arguments!!.getInt(ARG_SECTION_NUMBER) 29 | 30 | val imgUrl = images.split(",")[positionPost] 31 | 32 | Log.d(TAG, "Num: $positionPost of: ${images.split(",").size} img: $imgUrl") 33 | Log.d(TAG, "Num: $images" ) 34 | 35 | onLoadImage(imgUrl.trim(), rootView) 36 | return rootView 37 | } 38 | 39 | override fun onResume() { 40 | super.onResume() 41 | Log.d(TAG, "onResume()") 42 | } 43 | 44 | private fun onLoadImage(img_url: String, view: View) { 45 | val img = view.findViewById(R.id.img) 46 | Log.d(TAG, "Cur: $img_url" ) 47 | Picasso.get().load(img_url).into(img) 48 | } 49 | 50 | companion object { 51 | private const val ARG_SECTION_NUMBER = "section_position" 52 | private const val ARG_SECTION_IMG = "section_id" 53 | fun newInstance(position: Int, img: String): ImageFragment { 54 | val fragment = ImageFragment() 55 | val args = Bundle() 56 | args.putInt(ARG_SECTION_NUMBER, position) 57 | args.putString(ARG_SECTION_IMG, img) 58 | fragment.arguments = args 59 | return fragment 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/AnidubTrLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class AnidubTrLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public AnidubTrLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("test", "doInBackground: "+cookies); 39 | if (cookies.contains("dle_user_id=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("dle_user_id")) { 42 | result = cookies.replace("{","").replace("}",""); 43 | } else result = "null"; 44 | } else result = "null"; 45 | return null; 46 | } 47 | 48 | private Connection.Response Getdata() { 49 | try { 50 | return Jsoup 51 | .connect(Statics.ANIDUB_TR_URL) 52 | .method(Connection.Method.POST) 53 | .referrer(Statics.ANIDUB_TR_URL) 54 | .header("X-Requested-With", "XMLHttpRequest") 55 | .data("login_name", login) 56 | .data("login_password", pass) 57 | .data("login", "submit") 58 | .execute(); 59 | } catch (Exception e) { 60 | e.printStackTrace(); 61 | return null; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##### [CLOSED IN 2019] 2 | ## KinoTor [Android 4+][CLOSED IN 2019] 3 | 4 | KinoTor - on-line кинотеатр с для Android, с возможностью скачивания как видео, так и торрент файлов. 5 | --- 6 | 7 | ### Реализовано в учебных целях и больше не распространяется 8 | --- 9 | ### Скриншоты: 10 |

11 | 12 | accessibility text 13 | 14 |

15 | 16 | 17 | --- 18 | 19 | ### Скриншоты TV: 20 |

21 | 22 | accessibility text 23 | 24 |

25 | 26 | ## License 27 | ``` 28 | The MIT License (MIT) 29 | 30 | Copyright (c) 2023 Tiarait 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in all 40 | copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 48 | SOFTWARE. 49 | ``` 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/video/kinodom/KinodomLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.video.kinodom; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class KinodomLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public KinodomLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("test", "doInBackground kinodom: "+cookies); 39 | if (cookies.contains("dle_user_id=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("dle_user_id")) { 42 | result = "dle_user_id"+cookies.split("dle_user_id")[1].replace("}",""); 43 | } else result = "null"; 44 | } else result = "null"; 45 | return null; 46 | } 47 | 48 | private Connection.Response Getdata() { 49 | try { 50 | return Jsoup 51 | .connect(Statics.KINODOM_URL) 52 | .method(Connection.Method.POST) 53 | .header("X-Requested-With", "XMLHttpRequest") 54 | .data("login_name", login) 55 | .data("login_password", pass) 56 | .data("login_not_save", "0") 57 | .data("login", "submit") 58 | .execute(); 59 | } catch (Exception e) { 60 | e.printStackTrace(); 61 | return null; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/HurtomLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class HurtomLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public HurtomLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("test", "doInBackground: "+cookies); 39 | if (cookies.contains("toloka_sid=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("toloka_sid")) { 42 | result = cookies.replace("{","").replace("}",""); 43 | } else result = "null"; 44 | } else result = "null"; 45 | return null; 46 | } 47 | 48 | private Connection.Response Getdata() { 49 | try { 50 | return Jsoup 51 | .connect(Statics.HURTOM_URL + "/login.php") 52 | .method(Connection.Method.POST) 53 | .header("X-Requested-With", "XMLHttpRequest") 54 | .data("username", login) 55 | .data("password", pass) 56 | .data("autologin", "on") 57 | .data("redirect", "") 58 | .data("login", "Вхід") 59 | .execute(); 60 | } catch (Exception e) { 61 | e.printStackTrace(); 62 | return null; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/GreenTeaTrLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class GreenTeaTrLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public GreenTeaTrLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("test", "doInBackground: "+cookies); 39 | if (cookies.contains("bb_data=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("bb_data")) { 42 | result = cookies.replace("{","").replace("}",""); 43 | } else result = "null"; 44 | } else result = "null"; 45 | return null; 46 | } 47 | 48 | private Connection.Response Getdata() { 49 | try { 50 | return Jsoup 51 | .connect(Statics.GREENTEA_TR_URL + "/login.php") 52 | .method(Connection.Method.POST) 53 | .referrer(Statics.GREENTEA_TR_URL) 54 | .header("X-Requested-With", "XMLHttpRequest") 55 | .data("login_username", login) 56 | .data("login_password", pass) 57 | .data("autologin", "1") 58 | .data("login", "Вход") 59 | .execute(); 60 | } catch (Exception e) { 61 | e.printStackTrace(); 62 | return null; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 16 | 17 | 22 | 23 | 24 | 25 | 35 | 36 | 42 | 43 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/RutrackerLogin.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Connection; 10 | import org.jsoup.Jsoup; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class RutrackerLogin extends AsyncTask { 16 | private String login, pass, result = "null"; 17 | private OnTaskLocationCallback callback; 18 | 19 | 20 | public RutrackerLogin(String login, String pass, OnTaskLocationCallback callback) { 21 | this.login = login; 22 | this.pass = pass; 23 | this.callback = callback; 24 | } 25 | 26 | @Override 27 | protected void onPostExecute(Void aVoid) { 28 | callback.OnCompleted(result); 29 | 30 | super.onPostExecute(aVoid); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | Connection.Response res = Getdata(); 36 | if (res != null) { 37 | String cookies = res.cookies().toString(); 38 | Log.e("RutrackerLogin", cookies); 39 | if (cookies.contains("bb_session=deleted")) 40 | result = "error"; 41 | else if (cookies.contains("bb_session")) { 42 | result = cookies.replace("{","").replace("}",""); 43 | } else result = "null"; 44 | } else { 45 | Log.e("RutrackerLogin", "res null"); 46 | result = "null"; 47 | } 48 | return null; 49 | } 50 | 51 | private Connection.Response Getdata() { 52 | try { 53 | return Jsoup 54 | .connect(Statics.RUTRACKER_URL + "/forum/login.php") 55 | .method(Connection.Method.POST) 56 | .referrer(Statics.RUTRACKER_URL + "/forum/index.php") 57 | .header("X-Requested-With", "XMLHttpRequest") 58 | .data("login_username", login) 59 | .data("login_password", pass) 60 | .data("login", "%E2%F5%EE%E4") 61 | .execute(); 62 | } catch (Exception e) { 63 | e.printStackTrace(); 64 | return null; 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/FreerutorUrl.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Jsoup; 10 | import org.jsoup.nodes.Document; 11 | 12 | import static android.content.ContentValues.TAG; 13 | 14 | /** 15 | * Created by Tiar on 02.2018. 16 | */ 17 | 18 | public class FreerutorUrl extends AsyncTask { 19 | private String url, file, magnet, torrent; 20 | private OnTaskLocationCallback callback; 21 | 22 | public FreerutorUrl(String url, String file, OnTaskLocationCallback callback) { 23 | this.url = url.trim(); 24 | this.file = file; 25 | this.callback = callback; 26 | } 27 | 28 | @Override 29 | protected void onPostExecute(Void aVoid) { 30 | if (file.equals("magnet")) { 31 | callback.OnCompleted(magnet); 32 | } else if (file.equals("play")) callback.OnCompleted(torrent); 33 | } 34 | 35 | @Override 36 | protected Void doInBackground(Void... voids) { 37 | if (file.equals("magnet")) 38 | getMagnet(Getdata(url)); 39 | else getTorrent(Getdata(url)); 40 | return null; 41 | } 42 | 43 | private void getMagnet(Document data) { 44 | if (data != null) { 45 | magnet = data.select("a[href^='magnet']").attr("href"); 46 | } 47 | } 48 | 49 | private void getTorrent(Document data) { 50 | if (data != null) { 51 | torrent = data.select("a[href^='/engine/download.php']").attr("href"); 52 | torrent = torrent.startsWith("http://") ? torrent : Statics.FREERUTOR_URL + torrent; 53 | } 54 | } 55 | 56 | private Document Getdata(String url) { 57 | try { 58 | Document htmlDoc = Jsoup.connect(url).followRedirects(false).referrer(Statics.FREERUTOR_URL) 59 | .validateTLSCertificates(false) 60 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 61 | .ignoreContentType(true) 62 | .get(); 63 | Log.d(TAG, "GetUrl: FreeRutorMe " + url); 64 | return htmlDoc; 65 | } catch (Exception e) { 66 | e.printStackTrace(); 67 | return null; 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/GetLocation.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import java.io.IOException; 10 | import java.net.HttpURLConnection; 11 | import java.net.URL; 12 | 13 | import static android.content.ContentValues.TAG; 14 | 15 | /** 16 | * Created by Tiar on 02.2018. 17 | */ 18 | 19 | public class GetLocation extends AsyncTask { 20 | private String url, location; 21 | private OnTaskLocationCallback callback; 22 | 23 | public GetLocation(String url, OnTaskLocationCallback callback) { 24 | this.url = url; 25 | this.callback = callback; 26 | } 27 | 28 | @Override 29 | protected void onPostExecute(Void aVoid) { 30 | callback.OnCompleted(location); 31 | } 32 | 33 | @Override 34 | protected Void doInBackground(Void... voids) { 35 | location = getLocation(url); 36 | return null; 37 | } 38 | 39 | private String getLocation(String url) { 40 | String ref; 41 | if (url.contains("drek")) ref = "http://animevost.org/"; 42 | else if (url.contains(Statics.NNM_URL)) ref = Statics.NNM_URL; 43 | else ref = "http://hdgo.cc/"; 44 | try { 45 | URL uri = new URL(checkUrl(url.trim())); 46 | HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); 47 | connection.setRequestMethod("GET"); 48 | connection.setRequestProperty("Referer", ref); 49 | connection.setInstanceFollowRedirects(false); 50 | connection.connect(); 51 | Log.d(TAG, "GetLocation: " + url); 52 | Log.d(TAG, "Location: " + connection.getHeaderField("Location")); 53 | String loc = connection.getHeaderField("Location"); 54 | return loc != null ? loc : url; 55 | } catch (IOException e) { 56 | e.printStackTrace(); 57 | Log.d(TAG, "GetLocation: " + url); 58 | Log.d(TAG, "Location: error"); 59 | return url; 60 | } 61 | } 62 | 63 | private String checkUrl(String url) { 64 | url = url.replace(" ", "").replace("\n", "").replaceAll("\r", ""); 65 | url = url.replace("\"", ""); 66 | if (!url.contains("http://") && !url.contains("https://")) url = url.contains("//") ? "http:" + url : "http://" + url; 67 | return url; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/KinozalMagnet.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.items.Statics; 7 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 8 | 9 | import org.jsoup.Jsoup; 10 | import org.jsoup.nodes.Document; 11 | 12 | import java.io.IOException; 13 | 14 | import static android.content.ContentValues.TAG; 15 | 16 | /** 17 | * Created by Tiar on 02.2018. 18 | */ 19 | 20 | public class KinozalMagnet extends AsyncTask { 21 | private String url, location; 22 | private OnTaskLocationCallback callback; 23 | 24 | public KinozalMagnet(String url, OnTaskLocationCallback callback) { 25 | this.url = url; 26 | this.callback = callback; 27 | } 28 | 29 | @Override 30 | protected void onPostExecute(Void aVoid) { 31 | callback.OnCompleted(location); 32 | } 33 | 34 | @Override 35 | protected Void doInBackground(Void... voids) { 36 | location = "magnet:?xt=urn:btih:" + magnet(get(url)); 37 | Log.d("KinozalMagnet", "magnet: " + location); 38 | return null; 39 | } 40 | 41 | private String magnet(Document data) { 42 | if (data != null) { 43 | if (data.html().contains("Инфо хеш: ")) { 44 | String m = data.html().split("Инфо хеш: ")[1].trim(); 45 | if (m.contains("")) 46 | return m.split("")[0].trim(); 47 | else return "error"; 48 | } else return "error"; 49 | } else 50 | return "error"; 51 | } 52 | 53 | private Document get(String url) { 54 | try { 55 | if (url.contains("?id=")) 56 | url = url.split("\\?id=")[1].trim(); 57 | Log.e(TAG, "get: "+Statics.KINOZAL_COOCKIE.replace(",",";")+";"); 58 | return Jsoup.connect(Statics.KINOZAL_URL + "/get_srv_details.php?id=" + url + "&action=2") 59 | .userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0") 60 | .header("Cookie", Statics.KINOZAL_COOCKIE.replace(",",";")+";") 61 | .validateTLSCertificates(false) 62 | .timeout(5000).ignoreContentType(true).get(); 63 | } catch (IOException e) { 64 | e.printStackTrace(); 65 | Log.d(TAG, "GetLocation: " + url); 66 | Log.d(TAG, "Location: error"); 67 | return null; 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/GetQualBluRay.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 7 | 8 | import org.jsoup.Jsoup; 9 | import org.jsoup.nodes.Document; 10 | import org.jsoup.nodes.Element; 11 | 12 | import java.io.IOException; 13 | 14 | import static android.content.ContentValues.TAG; 15 | 16 | /** 17 | * Created by Tiar on 02.2018. 18 | */ 19 | 20 | public class GetQualBluRay extends AsyncTask { 21 | private String title, location = "null"; 22 | private OnTaskLocationCallback callback; 23 | 24 | public GetQualBluRay(String title, OnTaskLocationCallback callback) { 25 | this.title = title; 26 | this.callback = callback; 27 | } 28 | 29 | @Override 30 | protected void onPostExecute(Void aVoid) { 31 | Log.d("GetQualBluRay", "Qual: "+location); 32 | callback.OnCompleted(location); 33 | } 34 | 35 | @Override 36 | protected Void doInBackground(Void... voids) { 37 | if (!title.equals("error")) 38 | checkQual(get(title)); 39 | return null; 40 | } 41 | 42 | private void checkQual (Document document){ 43 | if (document != null) { 44 | if (document.html().contains(" 2 | 11 | 12 | 18 | 19 | 27 | 28 | 29 | 30 | 39 | 40 | 41 | 45 | 53 | 57 | 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/parser/torrents/FreerutorLocation.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.parser.torrents; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.kinotor.tiar.kinotor.utils.OnTaskLocationCallback; 7 | 8 | import org.jsoup.Connection; 9 | import org.jsoup.Jsoup; 10 | 11 | import java.io.IOException; 12 | 13 | import static android.content.ContentValues.TAG; 14 | 15 | /** 16 | * Created by Tiar on 02.2018. 17 | */ 18 | 19 | public class FreerutorLocation extends AsyncTask { 20 | private String url, location, result; 21 | private OnTaskLocationCallback callback; 22 | 23 | public FreerutorLocation (String url, String location, OnTaskLocationCallback callback) { 24 | this.url = url; 25 | this.location = location; 26 | this.callback = callback; 27 | } 28 | 29 | @Override 30 | protected void onPostExecute(Void aVoid) { 31 | if (result != null) 32 | callback.OnCompleted(result); 33 | } 34 | 35 | @Override 36 | protected Void doInBackground(Void... voids) { 37 | result = getLocation(); 38 | return null; 39 | } 40 | 41 | private String getLocation() { 42 | try { 43 | // URL uri = new URL(url); 44 | // HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); 45 | // connection.setRequestMethod("GET"); 46 | // connection.setRequestProperty("Referer", Statics.FREERUTOR_URL); 47 | // connection.setInstanceFollowRedirects(false); 48 | // connection.connect(); 49 | // Log.d(TAG, "freerutorLocation: " + url); 50 | // Log.d(TAG, "Location: " + connection.getHeaderField("Location")); 51 | // return connection.getHeaderField("Location"); 52 | Connection.Response response = Jsoup 53 | .connect(location) 54 | .method(Connection.Method.GET) 55 | .referrer(url) 56 | .ignoreContentType(true) 57 | .validateTLSCertificates(false) 58 | .execute(); 59 | Log.d(TAG, "freerutorLocation: " + url); 60 | Log.d(TAG, "getLocation: " + location); 61 | Log.d(TAG, "Location: " + response.header("Location")); 62 | Log.d(TAG, "parse: " + response.parse().html()); 63 | return response.header("Location"); 64 | } catch (IOException e) { 65 | e.printStackTrace(); 66 | Log.d(TAG, "freerutorLocation: " + url); 67 | Log.d(TAG, "Location: error"); 68 | return url; 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 22 | 29 | 34 | 46 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /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/res/drawable/ic_menu_db.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/items/ItemNewVideo.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.items; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Tiar on 02.2018. 7 | */ 8 | 9 | public class ItemNewVideo { 10 | String url; 11 | String urlSite; 12 | ArrayList allUrlSite; 13 | String urlTrailer; 14 | String title; 15 | String id; 16 | String seasons_count; 17 | String episodes_count; 18 | String type; 19 | String token; 20 | String id_trans; 21 | String translator; 22 | String description; 23 | 24 | public String getUrl() { 25 | return url; 26 | } 27 | 28 | public String getUrlSite() { 29 | return urlSite; 30 | } 31 | 32 | public ArrayList getAllUrlSite() { 33 | return allUrlSite; 34 | } 35 | 36 | public String getUrlTrailer() { 37 | return urlTrailer; 38 | } 39 | 40 | public String getTitle() { 41 | return title; 42 | } 43 | 44 | public String getId() { 45 | return id; 46 | } 47 | 48 | public String getSeasons_count() { 49 | return seasons_count; 50 | } 51 | 52 | public String getEpisodes_count() { 53 | return episodes_count; 54 | } 55 | 56 | public String getType() { 57 | return type; 58 | } 59 | 60 | public String getToken() { 61 | return token; 62 | } 63 | 64 | public String getId_trans() { 65 | return id_trans; 66 | } 67 | 68 | public String getTranslator() { 69 | return translator; 70 | } 71 | public String getDescription() { 72 | return description; 73 | } 74 | 75 | public ItemNewVideo( 76 | String url, 77 | String urlSite, 78 | ArrayList allUrlSite, 79 | String urlTrailer, 80 | String title, 81 | String id, 82 | String seasons_count, 83 | String episodes_count, 84 | String type, 85 | String token, 86 | String id_trans, 87 | String translator, 88 | String description) { 89 | this.url = url; 90 | this.urlSite = urlSite; 91 | this.allUrlSite = allUrlSite; 92 | this.urlTrailer = urlTrailer; 93 | this.title = title; 94 | this.id = id; 95 | this.seasons_count = seasons_count; 96 | this.episodes_count = episodes_count; 97 | this.type = type; 98 | this.token = token; 99 | this.id_trans = id_trans; 100 | this.translator = translator; 101 | this.description = description; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/ui/reclam/SampleVideoPlayer.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.ui.reclam; 2 | 3 | import android.content.Context; 4 | import android.media.MediaPlayer.OnCompletionListener; 5 | import android.util.AttributeSet; 6 | import android.widget.MediaController; 7 | import android.widget.VideoView; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | /** 13 | * Created by Tiar on 08.2018. 14 | */ 15 | public class SampleVideoPlayer extends VideoView { 16 | 17 | /** 18 | * Interface for alerting caller of video completion. 19 | */ 20 | public interface OnVideoCompletedListener { 21 | 22 | /** 23 | * Called when the current video has completed playback to the end of the video. 24 | */ 25 | void onVideoCompleted(); 26 | } 27 | 28 | private final List mOnVideoCompletedListeners = new ArrayList<>(1); 29 | 30 | public SampleVideoPlayer(Context context, AttributeSet attrs, int defStyle) { 31 | super(context, attrs, defStyle); 32 | init(); 33 | } 34 | 35 | public SampleVideoPlayer(Context context, AttributeSet attrs) { 36 | super(context, attrs); 37 | init(); 38 | } 39 | 40 | public SampleVideoPlayer(Context context) { 41 | super(context); 42 | init(); 43 | } 44 | 45 | private void init() { 46 | MediaController mediaController = new MediaController(getContext()); 47 | mediaController.setAnchorView(this); 48 | 49 | // Set OnCompletionListener to notify our listeners when the video is completed. 50 | super.setOnCompletionListener(mediaPlayer -> { 51 | // Reset the MediaPlayer. 52 | // This prevents a race condition which occasionally results in the media 53 | // player crashing when switching between videos. 54 | mediaPlayer.reset(); 55 | mediaPlayer.setDisplay(getHolder()); 56 | 57 | for (OnVideoCompletedListener listener : mOnVideoCompletedListeners) { 58 | listener.onVideoCompleted(); 59 | } 60 | }); 61 | 62 | // Set OnErrorListener to notify our listeners if the video errors. 63 | super.setOnErrorListener((mp, what, extra) -> { 64 | 65 | // Returning true signals to MediaPlayer that we handled the error. This will 66 | // prevent the completion handler from being called. 67 | return true; 68 | }); 69 | } 70 | 71 | @Override 72 | public void setOnCompletionListener(OnCompletionListener listener) { 73 | // The OnCompletionListener can only be implemented by SampleVideoPlayer. 74 | throw new UnsupportedOperationException(); 75 | } 76 | 77 | public void play() { 78 | start(); 79 | } 80 | 81 | public void addVideoCompletedListener(OnVideoCompletedListener listener) { 82 | mOnVideoCompletedListeners.add(listener); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/utils/SignatureUtil.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.utils; 2 | 3 | import android.content.Context; 4 | import android.content.pm.PackageInfo; 5 | import android.content.pm.PackageManager; 6 | import android.content.pm.Signature; 7 | 8 | import com.kinotor.tiar.kinotor.BuildConfig; 9 | 10 | import java.security.MessageDigest; 11 | import java.security.NoSuchAlgorithmException; 12 | import java.security.NoSuchProviderException; 13 | 14 | public class SignatureUtil { 15 | 16 | public static boolean isGetHooked() { 17 | PackageInfo packageInfo = new PackageInfo(); 18 | packageInfo.packageName = BuildConfig.APPLICATION_ID; 19 | packageInfo.signatures = new Signature[0]; 20 | try { 21 | int length = ((Object[]) PackageInfo.class.getField("signatures").get(packageInfo)).length; 22 | return length != 0; 23 | } catch (Exception e) { 24 | return true; 25 | } 26 | } 27 | 28 | public static boolean validateAppSignature(Context context){ 29 | try { 30 | PackageInfo packageInfo = context.getPackageManager().getPackageInfo( 31 | context.getPackageName(), PackageManager.GET_SIGNATURES); 32 | 33 | for (Signature signature : packageInfo.signatures) { 34 | 35 | String sha1 = getSHA1(signature.toByteArray()); 36 | 37 | return BuildConfig.TRASH.equals(sha1); 38 | } 39 | } catch (PackageManager.NameNotFoundException e) { 40 | e.printStackTrace(); 41 | } 42 | return false; 43 | } 44 | 45 | //computed the sha1 hash of the signature 46 | private static String getSHA1(byte[] sig) { 47 | MessageDigest digest = null; 48 | try { 49 | digest = MessageDigest.getInstance("SHA1", "BC"); 50 | } catch (NoSuchAlgorithmException e) { 51 | e.printStackTrace(); 52 | } catch (NoSuchProviderException e) { 53 | e.printStackTrace(); 54 | } 55 | digest.update(sig); 56 | byte[] hashtext = digest.digest(); 57 | return bytesToHex(hashtext); 58 | } 59 | 60 | //util method to convert byte array to hex string 61 | private static String bytesToHex(byte[] bytes) { 62 | final char[] hexArray = { '0', '1', '2', '3', '4', '5', '6', '7', '8', 63 | '9', 'A', 'B', 'C', 'D', 'E', 'F' }; 64 | char[] hexChars = new char[bytes.length * 2]; 65 | int v; 66 | for (int j = 0; j < bytes.length; j++) { 67 | v = bytes[j] & 0xFF; 68 | hexChars[j * 2] = hexArray[v >>> 4]; 69 | hexChars[j * 2 + 1] = hexArray[v & 0x0F]; 70 | } 71 | return new String(hexChars); 72 | } 73 | 74 | 75 | } 76 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_base.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 9 | 13 | 14 | 15 | 20 | 25 | 30 | 35 | 36 | 37 | 38 | 42 | 43 | 45 | 51 | 57 | 63 | 64 | 65 | 66 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/items/ItemTorrent.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.items; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Tiar on 02.2018. 7 | */ 8 | 9 | public class ItemTorrent { 10 | public ArrayList tortitle = new ArrayList<>(); 11 | ArrayList torurl = new ArrayList<>(); 12 | ArrayList url = new ArrayList<>(); 13 | ArrayList torsize = new ArrayList<>(); 14 | ArrayList tormagnet = new ArrayList<>(); 15 | ArrayList torsid = new ArrayList<>(); 16 | ArrayList torlich = new ArrayList<>(); 17 | ArrayList torcontent = new ArrayList<>(); 18 | 19 | public String getTorTitle(int i) { 20 | return tortitle.get(i); 21 | } 22 | public String getTorUrl(int i) { 23 | return torurl.get(i); 24 | } 25 | public String getUrl(int i) { 26 | return url.get(i); 27 | } 28 | public String getTorSize(int i) { 29 | return torsize.get(i); 30 | } 31 | public String getTorMagnet(int i) { 32 | return tormagnet.get(i); 33 | } 34 | public String getTorSid(int i) { 35 | return torsid.get(i); 36 | } 37 | public String getTorLich(int i) { 38 | return torlich.get(i); 39 | } 40 | public String getTorContent(int i) { 41 | return torcontent.get(i); 42 | } 43 | 44 | public void setTorTitle(String i) { 45 | this.tortitle.add(i); 46 | } 47 | public void setTorUrl(String i) { 48 | this.torurl.add(i); 49 | } 50 | public void setUrl(String i) { 51 | this.url.add(i); 52 | } 53 | public void setTorSize(String i) { 54 | this.torsize.add(i); 55 | } 56 | public void setTorMagnet(String i) { 57 | this.tormagnet.add(i); 58 | } 59 | public void setTorSid(String i) { 60 | this.torsid.add(i); 61 | } 62 | public void setTorLich(String i) { 63 | this.torlich.add(i); 64 | } 65 | public void setTorContent(String i) { 66 | this.torcontent.add(i); 67 | } 68 | 69 | public void addHtmlItems (ItemHtml items) { 70 | this.tortitle.addAll(items.tortitle); 71 | this.torurl.addAll(items.torurl); 72 | this.url.addAll(items.toru); 73 | this.torsize.addAll(items.torsize); 74 | this.tormagnet.addAll(items.tormagnet); 75 | this.torsid.addAll(items.torsid); 76 | this.torlich.addAll(items.torlich); 77 | this.torcontent.addAll(items.torcontent); 78 | } 79 | 80 | public void addItems (ItemTorrent items) { 81 | this.tortitle.addAll(items.tortitle); 82 | this.torurl.addAll(items.torurl); 83 | this.url.addAll(items.url); 84 | this.torsize.addAll(items.torsize); 85 | this.tormagnet.addAll(items.tormagnet); 86 | this.torsid.addAll(items.torsid); 87 | this.torlich.addAll(items.torlich); 88 | this.torcontent.addAll(items.torcontent); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /app/src/main/java/com/kinotor/tiar/kinotor/ui/dialogs/DialogSearch.java: -------------------------------------------------------------------------------- 1 | package com.kinotor.tiar.kinotor.ui.dialogs; 2 | 3 | import android.app.DialogFragment; 4 | import android.content.DialogInterface; 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | import android.view.KeyEvent; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.view.Window; 12 | import android.widget.AutoCompleteTextView; 13 | import android.widget.EditText; 14 | 15 | import com.kinotor.tiar.kinotor.R; 16 | import com.kinotor.tiar.kinotor.items.Statics; 17 | import com.kinotor.tiar.kinotor.ui.MainCatalogActivity; 18 | 19 | /** 20 | * Created by Tiar on 02.01.2018. 21 | */ 22 | public class DialogSearch extends DialogFragment implements View.OnClickListener { 23 | private EditText text; 24 | private AutoCompleteTextView actv; 25 | 26 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 27 | Bundle savedInstanceState) { 28 | getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); 29 | setStyle(STYLE_NO_TITLE, 0); 30 | View v = inflater.inflate(R.layout.dialog_search, null); 31 | v.findViewById(R.id.b_search).setOnClickListener(this); 32 | v.findViewById(R.id.b_cancel).setOnClickListener(this); 33 | 34 | text = v.findViewById(R.id.text); 35 | actv = v.findViewById(R.id.actv); 36 | 37 | // List searchList = new ArrayList<>(); 38 | // searchList.add(new ItemSearch("test", "firstTest", "http://lordfilm.tv/uploads/posts/2018-08/1535483407-1114476413.jpg")); 39 | // searchList.add(new ItemSearch("тест", "lastTest", "http://lordfilm.tv/uploads/posts/2018-09/1536949981-1011773705.jpg")); 40 | // AdapterSearch adapterSearch = new AdapterSearch(getActivity(), searchList); 41 | // actv.setAdapter(adapterSearch); 42 | 43 | text.setOnKeyListener((v1, keyCode, event) -> { 44 | // If the event is a key-key event on the "enter" button 45 | if ((event.getAction() == KeyEvent.ACTION_DOWN) && 46 | (keyCode == KeyEvent.KEYCODE_ENTER)) { 47 | onDone(); 48 | return true; 49 | } 50 | return false; 51 | }); 52 | return v; 53 | } 54 | 55 | public void onClick(View v) { 56 | switch (v.getId()) { 57 | case R.id.b_search: 58 | onDone(); 59 | break; 60 | case R.id.b_cancel: 61 | dismiss(); 62 | break; 63 | } 64 | } 65 | 66 | private void onDone () { 67 | Statics.refreshMain = true; 68 | String s = text.getText().toString(); 69 | Intent intent = new Intent(getActivity(), MainCatalogActivity.class); 70 | intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 71 | intent.putExtra("Type", "actor"); 72 | intent.putExtra("Query", s.trim()); 73 | getActivity().startActivity(intent); 74 | dismiss(); 75 | } 76 | 77 | public void onCancel(DialogInterface dialog) { 78 | dismiss(); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flat_serialvideo.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 29 | 32 | 35 | 38 | 41 | 44 | 47 | 50 | 53 | 56 | 59 | 62 | -------------------------------------------------------------------------------- /app/src/main/res/menu/drawer_catalog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 22 | 26 | 30 | 34 | 38 | 42 | 46 | 50 | 54 | 55 | 56 | 57 | 58 | 62 | 66 | 70 | 74 | 78 | 79 | 80 | 81 | 82 | --------------------------------------------------------------------------------