Skip to content

Commit

Permalink
[Development Stable Release]
Browse files Browse the repository at this point in the history
***added subtitle support (beta phase)
***added download support(beta phase)
***added information modal(to be changed).
  • Loading branch information
[email protected] committed Jul 31, 2022
1 parent 3317b1f commit 4f9ad9b
Show file tree
Hide file tree
Showing 18 changed files with 485 additions and 56 deletions.
1 change: 1 addition & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ dependencies {
implementation "com.facebook.react:react-native:+" // From node_modules

implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
implementation project(':react-native-fs')

debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
Expand Down
2 changes: 1 addition & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
package="com.flick">

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/java/com/flick/MainApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.flick.newarchitecture.MainApplicationReactNativeHost;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import com.rnfs.RNFSPackage;

public class MainApplication extends Application implements ReactApplication {

Expand Down
3 changes: 2 additions & 1 deletion android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
include ':react-native-video'
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android')

include ':react-native-fs'
project(':react-native-fs').projectDir = new File(settingsDir, '../node_modules/react-native-fs/android')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid')
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"react": "18.0.0",
"react-dom": "^18.2.0",
"react-native": "0.69.3",
"react-native-fs": "^2.20.0",
"react-native-gesture-handler": "^2.5.0",
"react-native-orientation-locker": "^1.5.0",
"react-native-pip-android": "^1.0.1",
Expand All @@ -35,7 +36,8 @@
"react-navigation": "^4.4.4",
"react-navigation-stack": "^2.10.4",
"react-navigation-tabs": "^2.11.2",
"react-redux": "^8.0.2"
"react-redux": "^8.0.2",
"rn-fetch-blob": "^0.12.0"
},
"devDependencies": {
"@babel/core": "^7.12.9",
Expand Down
185 changes: 185 additions & 0 deletions src/components/CreditsModal/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
import { View, Text, Modal, Image, TouchableOpacity, ScrollView, Linking } from 'react-native'
import React, { useEffect, useState } from 'react'
import { colors, sizes } from '../../constants/theme';

const CreditsModal = ({ isOpen, onClose }) => {


return (
<Modal
animationType="slide"
transparent={true}
visible={isOpen}
style={{
alignItems: 'center',
justifyContent: 'center'
}}
>
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
marginTop: 22,
maxHeight: sizes.height * 0.9
}}
>

<View
style={{
margin: 20,
backgroundColor: colors.black,
borderRadius: 20,
padding: 35,
alignItems: "center",
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 4,
elevation: 5
}}
>
<Image
source={require('~/assets/logo/logo.png')}
style={{
width: 100,
height: 50
}}
resizeMode="contain"
/>
<Text
style={{
color: colors.white,
marginBottom: 20
}}
>Flick v3</Text>
<ScrollView>
<Text
style={{
color: colors.white,
fontSize: 24,
fontWeight: 'bold',
textAlign: 'center'
}}
>
What is Flick?
</Text>
<Text
style={{
marginBottom: 50,
fontSize: 19,
}}
>
Flick (v3) is a Free Movie Streaming and Download app, no ads, no accounts, no bullshits, just free!.
{'\n\n'}
Watch and Download Free movies and TV Shows, HD movies directly on your mobile device.
{'\n\n'}
BTW Elijah temporary pa ni nga credits gi tapolan ko
</Text>
<Text
style={{
color: colors.white,
fontSize: 24,
fontWeight: 'bold',
textAlign: 'center'
}}
>
Credits
</Text>
<Text
style={{
marginBottom: 50,
fontSize: 19,
textAlign: 'center'
}}
>
KrazyDevs LLC (not a real company){'\n\n'}
Main Developers{'\n'}
----------------
{'\n'}
Elijah Abgao{'\n'}(https://github.com/skeltonmod){'\n'}for the "theflix.to" provider
{'\n'}{'\n'}
Wendale Dy{'\n'}(https://github.com/sheeshcake) {'\n'}for making this shit,
{'\n\n'}
***************
{'\n\n'}
The Flower Boyz{'\n'}
----------------
{'\n'}
Cedric Matthew Verdida{'\n'}The API pirate KING!{'\n'}{'\n'}
Denny Marc Maquiling{'\n'}Big Boss{'\n'}{'\n'}
James Patrick Apal{'\n'}ASA NA MAN ANG SPOFITY NATO NGA APP!!{'\n\n'}
</Text>
<Text
style={{
color: colors.white,
fontSize: 24,
fontWeight: 'bold',
textAlign: 'center'
}}
>
Disclaimer

</Text>
<Text
style={{
fontSize: 19,
}}
>
Any legal issues regarding the content on this application should be taken up with the actual file hosts and providers themselves as we are not affiliated with them. In case of copyright infringement, please directly contact the responsible parties or the streaming websites. The app is purely for educational and personal use. Flick(v3) does not host any content on the app, and has no control over what media is put up or taken down. Flick(v3) functions like any other search engine, such as Google. Flick(v3) does not host, upload or manage any videos, films or content. It simply crawls, aggregates and displayes links in a convenient, user-friendly interface. It merely scrapes 3rd-party websites that are publicly accessable via any regular web browser. It is the responsibility of user to avoid any actions that might violate the laws governing his/her locality. Use Flick(v3) at your own risk.
</Text>
</ScrollView>
<View
style={{
marginTop: 20,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between'
}}
>
<TouchableOpacity
style={{
padding: 10,
marginRight: 10,
borderRadius: 5,
backgroundColor: colors.white
}}
onPress={() => Linking.openURL("https://www.paypal.com/paypalme/wfrdee")}
>
<Text
style={{
color: colors.black,
fontSize: 20,
fontWeight: 'bold'
}}
>Buy Me a Coffee☕</Text>
</TouchableOpacity>
<TouchableOpacity
style={{
padding: 10,
borderRadius: 5,
backgroundColor: colors.white
}}
onPress={onClose}
>
<Text
style={{
color: colors.black,
fontSize: 20,
fontWeight: 'bold'
}}
>
Close
</Text>
</TouchableOpacity>
</View>
</View>
</View>
</Modal>
)
}

export default CreditsModal
8 changes: 4 additions & 4 deletions src/components/Header/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ import React from 'react'
import { colors, sizes } from '~/constants/theme'
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';

const Header = () => {
const Header = ({
onPressCredits
}) => {
return (
<View
style={{
Expand Down Expand Up @@ -37,9 +39,7 @@ const Header = () => {
}}
>
<TouchableOpacity
onPress={() => {
console.log('profile')
}}
onPress={onPressCredits}
style={{
padding: 10,
}}
Expand Down
55 changes: 35 additions & 20 deletions src/components/MediaPlayer/Controls.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { View, Text, ActivityIndicator } from 'react-native'
import React, { useState, useEffect, useRef } from 'react'
import Video from 'react-native-video';
import { TouchableOpacity } from 'react-native-gesture-handler';
import Slider from '@react-native-community/slider'
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
Expand All @@ -11,6 +10,8 @@ import Orientation from 'react-native-orientation-locker';
const Controls = ({
hide,
title,
link,
movie,
playing,
currentPosition,
duration,
Expand All @@ -23,8 +24,12 @@ const Controls = ({
videoStatus,
onHide,
onPause,
onPlay
onPlay,
onDownload
}) => {
// const {
// useStartDownload
// } = helpers
const navigation = useNavigation();
const [time, setTime] = useState();
const [status, setStatus] = useState(status);
Expand Down Expand Up @@ -91,7 +96,7 @@ const Controls = ({
</Text>
<TouchableOpacity
onPress={() => {
console.log('forward')
link && onDownload()
}}
style={{
padding: 10,
Expand All @@ -107,28 +112,37 @@ const Controls = ({
</TouchableOpacity>
</View>
<TouchableOpacity
style={{
alignItems: 'center',
justifyContent: 'center',
}}
activeOpacity={1}
onPress={() => {
onHide()
}}
style={{
height: sizes.height * 0.2,
alignItems: 'center',
justifyContent: 'center',
}}
>
{
status == "loading" ? (
<ActivityIndicator
animating={isBuffering}
color={colors.red}
size="large"
/>
) : status == "error" ? (
<Text style={{ color: colors.white, fontSize: 20, fontWeight: 'bold' }}>No Video Available :(</Text>
) : (
<></>
)
}
<View
style={{
alignItems: 'center',
justifyContent: 'center',
}}
>
{
status == "loading" ? (
<ActivityIndicator
animating={isBuffering}
color={colors.red}
size="large"
/>
) : status == "error" ? (
<Text style={{ color: colors.white, fontSize: 20, fontWeight: 'bold' }}>No Video Available :(</Text>
) : (
// ADD more Controls HERE
<></>
)
}
</View>
</TouchableOpacity>
<View
style={{
Expand All @@ -139,6 +153,7 @@ const Controls = ({
justifyContent: 'space-between',
backgroundColor: colors.transparentBlack,
alignItems: 'center',
marginBottom: 20,
}}
>
<TouchableOpacity
Expand Down
Loading

0 comments on commit 4f9ad9b

Please sign in to comment.