Android wallpaper manager for changing wallpaper.
- Using yarn
$ yarn add react-native-manage-wallpaper
- Using npm
$ npm install react-native-manage-wallpaper --save
- Initialization of a react-native project
$ npx react-native init AwesomeProject
Note: GUIDE
- Then, edit
AwesomeProject/App.js
, like this:
import { View, TouchableOpacity, Text } from 'react-native';
import ManageWallpaper, { TYPE } from 'react-native-manage-wallpaper';
export default class App extends Component<{}> {
_callback = res => {
console.log('Response: ', res);
};
_setWallpaper = () => {
ManageWallpaper.setWallpaper(
{
uri: 'https://i.pinimg.com/originals/76/5e/1d/765e1dc8cb1cc115fb3b0b39a895fdeb.jpg',
},
this._callback,
TYPE.HOME,
);
};
render() {
return (
<View
style={{
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
}}
>
<TouchableOpacity
style={{
paddingHorizontal: 30,
paddingVertical: 8,
marginBottom: 24,
borderRadius: 16,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#000000',
}}
onPress={this._setWallpaper}
>
<Text
style={{
fontSize: 20,
margin: 10,
textAlign: 'center',
color: '#FFFFFF',
}}
>
Change Home Wallpaper
</Text>
</TouchableOpacity>
</View>
);
}
}
Removing RNGlideModule from react-native-manage-wallpaper
If you are using Glide within your application using an AppGlideModule then you will need to prevent the inclusion of the AppGlideModule in this package.
To accomplish this you can add to android/build.gradle
:
project.ext {
excludeRNGlideModule = true
}
Type of arguments for setWallpaper(source, callback, type)
The image source (either a remote URL or a local file resource).
The currently supported formats are png
, jpg
, jpeg
, gif
.
e.g.
RemoteURL: { uri: 'remote url' }
LocalFileURL: { uri: 'file:///local_file_url' }
Local: require('path to local file with extension')
Callback receive a response object ({ status, msg, url }).
- status:
"error" string in case of handled error
OR
"success" string in case of successful setting of wallpaper. - msg: description related to status
- url: resource url
The wallpaper setting type (home, lock or both).
e.g.
Firstly,
import { TYPE } from 'react-native-manage-wallpaper';
Then,
For Home use TYPE.HOME
For Lock use TYPE.LOCK
For Home & Lock use TYPE.BOTH
cd example
yarn or npm install
npx react-native run-android
In case of any issue follow the GUIDE.
This project only aims to support the latest version of React Native.
This simplifies the development and the testing of the project.
If you require new features or bug fixes for older versions you can fork this project.
The idea for this modules came from liuhong1happy react-native-wallpaper-manager package. It also uses Glide, but didn't have some features I needed (home, lock, both).
ManageWallPaper - MIT © MeharBhutta
Glide - BSD, part MIT and Apache 2.0. See the LICENSE file for details.