store ankiLan note creator and template in react native async storage

This commit is contained in:
horhik 2020-03-24 11:05:54 -03:00
parent 17bc55ac10
commit f8b2ff9ccc
8 changed files with 57 additions and 1 deletions

View file

@ -179,6 +179,7 @@ android {
}
dependencies {
implementation project(':@react-native-community_async-storage')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules

View file

@ -4,6 +4,7 @@ import android.app.Application;
import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;

View file

@ -1,3 +1,5 @@
rootProject.name = 'ankilan'
include ':@react-native-community_async-storage'
project(':@react-native-community_async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/async-storage/android')
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'

View file

@ -34,6 +34,8 @@ target 'ankilan' do
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage'
target 'ankilanTests' do
inherit! :search_paths
# Pods for testing

View file

@ -1,5 +1,6 @@
import {AnkiDroid} from 'react-native-ankidroid/dist/ankidroid';
import {setAnkiNoteCreator, setCreatorTemplate} from './anki-set-actions';
import sendDataToLocaleStorage from './filesystem';
import {
checkAnkiLanModelForExisting,
getFieldList,
@ -171,6 +172,10 @@ export const createAnkiLanModel = model => async dispatch => {
const selectedDeck = new AnkiDroid(settings);
await dispatch(setAnkiNoteCreator(selectedDeck));
await dispatch(setCreatorTemplate(modelFields));
sendDataToLocaleStorage(
setAnkiNoteCreator(selectedDeck), //send creator to locale storage
setCreatorTemplate(modelFields),
);
addNote(selectedDeck, valueFields, modelFields);
checkAnkiLanModelForExisting(model.name, model.list);
await dispatch(getModelList());
@ -180,6 +185,7 @@ export const createAnkiLanModel = model => async dispatch => {
}
};
//creator is an object what have to store in locale storage.
export const addNote = (creator, words, template) => {
creator.addNote(words, template);
};

40
src/actions/filesystem.js Normal file
View file

@ -0,0 +1,40 @@
import AsyncStorage from '@react-native-community/async-storage';
import {
ANKILAN_NOTE_CREATOR,
ANKILAN_NOTE_TEMPLATE,
} from '../constants/anki-constants';
const sendDataToLocaleStorage = async (creator, template) => {
try {
await AsyncStorage.setItem(ANKILAN_NOTE_CREATOR, JSON.stringify(creator));
await AsyncStorage.setItem(ANKILAN_NOTE_TEMPLATE, JSON.stringify(template));
} catch (e) {
// saving error
alert('Error while syncing with filesystem');
console.log(e);
}
};
export default sendDataToLocaleStorage;
export const getTemplate = async () => {
try {
const value = await AsyncStorage.getItem(ANKILAN_NOTE_TEMPLATE);
if (value !== null) {
// value previously stored
return value;
}
} catch (e) {
// error reading value
}
};
export const getCreator = async () => {
try {
const value = await AsyncStorage.getItem(ANKILAN_NOTE_TEMPLATE);
if (value !== null) {
// value previously stored
return value;
}
} catch (e) {
// error reading value
}
};

View file

@ -22,3 +22,7 @@ export const SET_FIELDS = 'SET_FIELDS';
export const SHOW_FIELDS = 'SHOW_FIELDS';
// Anki check actions
export const SET_EXISTING_OF_ANKI_LAN_MODEL = 'SET_EXISTING_OF_ANKI_LAN_MODEL';
//rn-async-storage kesy
export const ANKILAN_NOTE_CREATOR = '@ANKILAN_NOTE_CREATOR';
export const ANKILAN_NOTE_TEMPLATE = '@ANKILAN_NOTE_TEMPLATE';

View file

@ -20,7 +20,7 @@ const initialState = {
mainFieldIsAvailable: false,
fieldList: [],
ankiLanModelIsAlreadyExists: false,
ankiLanModelName: 'AnkiLan_final',
ankiLanModelName: 'AnkiLan_final1',
noteCreator: {},
noteTemplate: [],
};