Skip to content

Commit

Permalink
should check in android again
Browse files Browse the repository at this point in the history
  • Loading branch information
purellarohith committed Dec 8, 2020
0 parents commit c3555c4
Show file tree
Hide file tree
Showing 84 changed files with 10,859 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .buckconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

[android]
target = Google Inc.:Google APIs:23

[maven_repositories]
central = https://repo1.maven.org/maven2
4 changes: 4 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports = {
root: true,
extends: '@react-native-community',
};
73 changes: 73 additions & 0 deletions .flowconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js

; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/

; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*

; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*

; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js

[untyped]
.*/node_modules/@react-native-community/cli/.*/.*

[include]

[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/

[options]
emoji=true

esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable

module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js

munge_underscores=true

module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'

suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError

[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
signature-verification-failure=warn
deprecated-utility=error

[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import

[version]
^0.122.0
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pbxproj -text
59 changes: 59 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots

# Bundle artifact
*.jsbundle

# CocoaPods
/ios/Pods/
8 changes: 8 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
bracketSpacing: true,
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
endOfLine: "auto",

};
1 change: 1 addition & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
40 changes: 40 additions & 0 deletions App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { enableScreens } from 'react-native-screens';
import { createNativeStackNavigator } from 'react-native-screens/native-stack';
import ScreenOne from './Componets/Screens/ScreenOne/ScreenOne';
import ScreenTwo from './Componets/Screens/ScreenTwo/ScreenTwo';
import { ContextApi } from './Componets/Context/Context';

const App = () => {
enableScreens();
const Stack = createNativeStackNavigator();
return (
<>
<ContextApi>
<NavigationContainer>
<Stack.Navigator initialRouteName="MainScreen">
<Stack.Screen
name="MainScreen"
component={ScreenOne}
options={{
headerShown: false,
statusBarHidden: true,
}}
/>
<Stack.Screen
name="PlayerScreen"
component={ScreenTwo}
options={{
headerShown: false,
statusBarHidden: true,
}}
/>
</Stack.Navigator>
</NavigationContainer>
</ContextApi>
</>
);
};

export default App;
174 changes: 174 additions & 0 deletions Componets/Context/Context.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
import React from 'react';
import { PermissionsAndroid } from 'react-native';
import { check, PERMISSIONS } from 'react-native-permissions';
let fs = require('react-native-fs');
//

let lastdata = [];
//

export const DataApi = React.createContext();
//

export const ContextApi = ({ children }) => {
//
const [data, setData] = React.useState([]);
//

const firstCheck = async () => {
//
const Check = {};
//

Check.readData = async () => {
let a = [];
let musicfiles = [];
let musicCount = 0;
//

const firstfile = await fs
.readDir(fs.ExternalStorageDirectoryPath)
.then((i) => {
i.forEach((b, c) => {
a[c] = { ...b };
});
return a;
})
.catch((err) => console.log(err));
console.log(fs.ExternalStorageDirectoryPath);

//

if (firstfile) {
await firstfile.forEach(async (innerEle, innerInd) => {
if (innerEle.isFile()) {
if (innerEle.path.endsWith('.mp3')) {
musicfiles[musicCount] = { ...innerEle };
musicCount++;
// console.log(musicCount);
console.log('one');
}
}
if (innerEle.isDirectory()) {
console.log('two');
await fs
.readDir(innerEle.path)
.then((next) =>
next.forEach(async (k, inn) => {
if (k.isDirectory()) {
console.log('three');
await fs
.readDir(k.path)
.then((h) =>
h.forEach(async (dd, kk) => {
if (dd.isDirectory()) {
console.log('five');
await fs
.readDir(dd.path)
.then((j) =>
j.forEach(async (fsds, dsfs) => {
console.log(fsds);
if (fsds.isFile()) {
if (fsds.path.endsWith('.mp3')) {
musicfiles[musicCount] = { ...fsds };
musicCount++;
// console.log(musicCount);
console.log('seven');
}
}
if (fsds.isDirectory()) {
console.log('eight');
}
}),
)
.catch((errorfour) => console.log('errorFour'));
}
if (dd.isFile()) {
console.log('six');
if (dd.path.endsWith('.mp3')) {
musicfiles[musicCount] = { ...dd };
musicCount++;
// console.log(musicCount);
musicfiles.forEach((eee, iii) => {
lastdata[iii] = {
...eee,
backgroundColor: true,
iconsChange: true,
};
});
setData(lastdata);
}
}
}),
)
.catch((errthree) => console.log('error three'));
}
if (k.isFile()) {
if (k.path.endsWith('.mp3')) {
musicfiles[musicCount] = { ...k };
musicCount++;
// console.log(musicCount);
console.log('four');
}
}
}),
)
.catch((errone) => console.log('errorTwo'));
}
});
}
};
console.log('ten');

Check.check = () => {
check(PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE)
.then((res) => {
if (res === 'granted') {
console.log('Granted');
Check.readData();
} else {
console.log(false);
Check.AskPermission();
}
})
.catch((err) => console.log(err));
};
Check.check();
Check.AskPermission = async () => {
try {
let Granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
{
title: 'Read external storage',
message: 'Nead permission to get files',
buttonNeutral: 'Ask Me Later',
buttonNegative: 'Cancel',
buttonPositive: 'OK',
},
);
if (Granted === 'granted') {
console.log('granted');
Check.readData();
} else {
console.log('not Granted');
Check.AskPermission();
}
} catch (error) {
console.warn(error);
}
};
};

React.useEffect(() => {
firstCheck();
return () => {
true;
};
}, []);

return (
<>
<DataApi.Provider value={[data, setData]}>{children}</DataApi.Provider>
</>
);
};
Loading

0 comments on commit c3555c4

Please sign in to comment.