Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 26ec47bad2 |
+1
-1
@@ -30,7 +30,7 @@ ios/Index/DataStore
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
*.properties
|
||||
local.properties
|
||||
*.iml
|
||||
*.hprof
|
||||
|
||||
|
||||
@@ -34,31 +34,13 @@ or clone it with HTTPS
|
||||
|
||||
git clone https://gitlab.com/bloodyhealth/drip.git
|
||||
|
||||
### 2. Node version
|
||||
### 2. Node & yarn version
|
||||
|
||||
Make sure you are running Node 14 and classic yarn (v.1). It's easiest to switch Node versions using `nvm`, here's how to install NVM: https://github.com/nvm-sh/nvm#installing-and-updating. After installing nvm close the terminal and open it again to be able to use nvm.
|
||||
Once you have nvm running you can install node 14:
|
||||
|
||||
nvm install v14.19.3
|
||||
|
||||
#### On Apple Silicon M1
|
||||
|
||||
NodeJS 14 does not compile on the M1 architecture, so it has to be installed through Rosetta: https://devzilla.io/using-nodejs-14-with-mac-silicon-m1 .
|
||||
To activate Rosetta and switch to intel emulation run:
|
||||
|
||||
arch -x86_64 zsh
|
||||
|
||||
Run
|
||||
|
||||
arch
|
||||
|
||||
again to verify that it returns "i386".
|
||||
Now install node 14:
|
||||
|
||||
nvm install v14.19.3
|
||||
|
||||
### 3. Yarn version
|
||||
|
||||
use npm to install yarn:
|
||||
|
||||
npm install --global yarn
|
||||
@@ -131,36 +113,20 @@ Minimum system requirements to run iOS app are as follows:
|
||||
- MacOS 10.15.7 for Mac users
|
||||
- Xcode 13 (command line tools only might be enough)
|
||||
|
||||
i. Install yarn dependencies
|
||||
|
||||
yarn install ..
|
||||
|
||||
ii. Install XCode dependencies by running the following command from the root project directory:
|
||||
i. Install XCode dependencies by running the following command from the root project directory:
|
||||
|
||||
cd ios && pod install && cd ..
|
||||
|
||||
iii. To run app either open drip workspace ('drip.xcworkspace' file) with XCode and run "Build" or run the following command:
|
||||
ii. To run app either open drip workspace ('drip.xcworkspace' file) with XCode and run "Build" or run the following command:
|
||||
|
||||
yarn ios
|
||||
|
||||
iiii. If you are building the app with XCode make sure you are running this as well:
|
||||
iii. If you are building the app with XCode make sure you are running this as well:
|
||||
|
||||
yarn start
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
#### [MacOS M1] Flipper problems
|
||||
|
||||
If a bug in the currently used Flipper version prevents building the project, comment out the respective line in the podfile, like so:
|
||||
|
||||
#use_flipper!()
|
||||
|
||||
Run
|
||||
|
||||
pod install
|
||||
|
||||
from the ios directory again to reload the dependencies.
|
||||
|
||||
#### [MacOS] Java problems
|
||||
|
||||
Make sure that you have Java 1.8 by running `java -version`.
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
apply plugin: "com.android.application"
|
||||
|
||||
import com.android.build.OutputFile
|
||||
import java.util.Properties
|
||||
import java.io.FileInputStream
|
||||
|
||||
/**
|
||||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||
@@ -127,16 +125,6 @@ def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
*/
|
||||
def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
|
||||
|
||||
// Create a variable called keystorePropertiesFile, and initialize it to your
|
||||
// keystore.properties file, in the rootProject folder.
|
||||
def keystorePropertiesFile = rootProject.file("keystore.properties")
|
||||
|
||||
// Initialize a new Properties() object called keystoreProperties.
|
||||
def keystoreProperties = new Properties()
|
||||
|
||||
// Load your keystore.properties file into the keystoreProperties object.
|
||||
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||
|
||||
android {
|
||||
ndkVersion rootProject.ext.ndkVersion
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
@@ -146,8 +134,8 @@ android {
|
||||
applicationId "com.drip"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 39
|
||||
versionName "1.2410.29"
|
||||
versionCode 33
|
||||
versionName "1.2403.19"
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
||||
}
|
||||
@@ -162,10 +150,6 @@ android {
|
||||
keyPassword 'android'
|
||||
}
|
||||
release {
|
||||
storeFile file('drip-release-key.keystore')
|
||||
keyAlias keystoreProperties['keyAlias']
|
||||
keyPassword keystoreProperties['keyPassword']
|
||||
storePassword keystoreProperties['storePassword']
|
||||
if (project.hasProperty('DRIP_RELEASE_STORE_FILE')) {
|
||||
storeFile file(DRIP_RELEASE_STORE_FILE)
|
||||
storePassword DRIP_RELEASE_STORE_PASSWORD
|
||||
|
||||
@@ -49,11 +49,10 @@ allprojects {
|
||||
}
|
||||
|
||||
ext {
|
||||
buildToolsVersion = "33.0.2"
|
||||
minSdkVersion = 21
|
||||
compileSdkVersion = 34
|
||||
targetSdkVersion = 34
|
||||
buildToolsVersion = "34.0.0"
|
||||
soLoaderVersion = "0.10.4+"
|
||||
compileSdkVersion = 33
|
||||
targetSdkVersion = 33
|
||||
|
||||
if (System.properties['os.arch'] == "aarch64") {
|
||||
// For M1 Users we need to use the NDK 24 which added support for aarch64
|
||||
|
||||
@@ -18,7 +18,7 @@ LoadingMoreView.propTypes = {
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
loadingContainer: {
|
||||
height: '100%',
|
||||
height: 80,
|
||||
backgroundColor: Colors.turquoiseLight,
|
||||
justifyContent: 'center',
|
||||
},
|
||||
|
||||
@@ -18,10 +18,6 @@ const AboutSection = () => {
|
||||
<AppPage title={t('title')}>
|
||||
<Segment>
|
||||
<AppText>{t('intro.text')}</AppText>
|
||||
<Button isCTA isSmall onPress={() => Linking.openURL(links.faq.url)}>
|
||||
{t('intro.faq')}
|
||||
</Button>
|
||||
<AppText>{t('intro.contact')}</AppText>
|
||||
<ButtonRow>
|
||||
{[links.email, links.gitlab, links.website].map((link) => (
|
||||
<Button
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React from 'react'
|
||||
import React, { useState, useEffect } from 'react'
|
||||
import { FlatList, StyleSheet, View } from 'react-native'
|
||||
import PropTypes from 'prop-types'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
@@ -9,6 +9,7 @@ import AppText from '../common/app-text'
|
||||
import cycleModule from '../../lib/cycle'
|
||||
import { Spacing, Typography, Colors } from '../../styles'
|
||||
import { humanizeDate } from '../helpers/format-date'
|
||||
import LoadingMoreView from '../chart/loading-more'
|
||||
|
||||
const Item = ({ data }) => {
|
||||
const { t } = useTranslation(null, { keyPrefix: 'plurals' })
|
||||
@@ -39,21 +40,36 @@ Item.propTypes = {
|
||||
const PeriodDetailsModal = ({ onClose }) => {
|
||||
const renderItem = ({ item }) => <Item data={item} />
|
||||
const data = cycleModule().getStats()
|
||||
const [endReached, setEndReached] = useState(false)
|
||||
|
||||
if (!data || data.length === 0) return false
|
||||
|
||||
// const ITEM_HEIGHT = 50;
|
||||
|
||||
// const getItemLayout = (data, index) => ({
|
||||
// length: ITEM_HEIGHT,
|
||||
// offset: ITEM_HEIGHT * index,
|
||||
// index
|
||||
// });
|
||||
|
||||
return (
|
||||
<AppModal onClose={onClose}>
|
||||
<View>
|
||||
<FlatList
|
||||
data={data}
|
||||
renderItem={renderItem}
|
||||
// getItemLayout={getItemLayout}
|
||||
keyExtractor={(item) => item.date}
|
||||
ItemSeparatorComponent={ItemDivider}
|
||||
ListHeaderComponent={FlatListHeader}
|
||||
ListHeaderComponentStyle={styles.headerDivider}
|
||||
stickyHeaderIndices={[0]}
|
||||
windowSize={4}
|
||||
contentContainerStyle={styles.container}
|
||||
onEndReached={() => setEndReached(true)}
|
||||
onEndReachedThreshold={0.1}
|
||||
ListFooterComponent={<LoadingMoreView end={endReached} />}
|
||||
updateCellsBatchingPeriod={100}
|
||||
/>
|
||||
</View>
|
||||
</AppModal>
|
||||
|
||||
+1
-3
@@ -45,9 +45,7 @@
|
||||
"text": "The drips are developing this app on a volunteer basis. We are always grateful for support. This could mean condriputing to the code, giving feedback, suggesting improvements or features, testing or donating. It helps and motivates us maintaining this app and developing new features. Thank you for your support!"
|
||||
},
|
||||
"intro": {
|
||||
"text": "Please note that your data is stored locally on your phone and not on a server. This means your data cannot be read by anyone else unless they have access to your phone. We want to ensure that you stay in control of your own data. If you are planning to switch or reset your phone, please remember to export your data before doing so. You can reinstall the app afterwards and import your data.\n\nIf you encounter any issues, please take a look at our Frequently Asked Questions page.",
|
||||
"faq": "FAQ",
|
||||
"contact": "\nIf your issue is not listed, don't hesitate to contact us via email. You can also contribute to the code base on Gitlab and visit our website."
|
||||
"text": "Please note that your data is stored locally on your phone and not on a server. This means your data cannot be read by anyone else unless they have access to your phone. We want to ensure that you stay in control of your own data. If you are planning to switch or reset your phone, please remember to export your data before doing so. You can reinstall the app afterwards and import your data.\n\nIf you encounter any technical issues, don't hesitate to contact us via email. You can also contribute to the code base on Gitlab and visit our website."
|
||||
},
|
||||
"philosophy": {
|
||||
"title": "Remember to think for yourself",
|
||||
|
||||
@@ -39,8 +39,4 @@ export default {
|
||||
url: 'https://www.flaticon.com',
|
||||
text: 'Flaticon',
|
||||
},
|
||||
faq: {
|
||||
url: 'https://dripapp.org/faq',
|
||||
text: 'FAQ',
|
||||
},
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.2410.29</string>
|
||||
<string>1.2403.19</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
@@ -57,7 +57,6 @@ export default function setupNotifications(navigate, setDate) {
|
||||
vibrate: false,
|
||||
repeatType: 'day',
|
||||
channelId: 'drip-channel-id',
|
||||
allowWhileIdle: true,
|
||||
})
|
||||
}
|
||||
}, false)
|
||||
@@ -101,7 +100,6 @@ function setupPeriodReminder() {
|
||||
date: reminderDate.toDate(),
|
||||
vibrate: false,
|
||||
channelId: 'drip-channel-id',
|
||||
allowWhileIdle: true,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,14 +1,13 @@
|
||||
{
|
||||
"name": "drip.",
|
||||
"version": "1.2410.29",
|
||||
"version": "1.2403.19",
|
||||
"contributors": [
|
||||
"Julia Friesel <julia.friesel@gmail.com>",
|
||||
"Marie Kochsiek",
|
||||
"Tina Baumann",
|
||||
"Sofiya Tepikin",
|
||||
"Mariya Zadnepryanets",
|
||||
"Lisa Hillebrand",
|
||||
"Martha Dörfler"
|
||||
"Lisa Hillebrand"
|
||||
],
|
||||
"scripts": {
|
||||
"start": "react-native start",
|
||||
@@ -48,7 +47,7 @@
|
||||
"prop-types": "^15.8.1",
|
||||
"react": "17.0.2",
|
||||
"react-i18next": "^12.0.0",
|
||||
"react-native": "0.68.5",
|
||||
"react-native": "0.68.3",
|
||||
"react-native-calendars": "^1.1287.0",
|
||||
"react-native-document-picker": "^8.1.1",
|
||||
"react-native-fs": "^2.20.0",
|
||||
|
||||
@@ -6378,7 +6378,7 @@ promise@^7.1.1:
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
promise@^8.2.0:
|
||||
promise@^8.0.3:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
|
||||
integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==
|
||||
@@ -6508,10 +6508,10 @@ react-native-calendars@^1.1287.0:
|
||||
optionalDependencies:
|
||||
moment "^2.29.4"
|
||||
|
||||
react-native-codegen@^0.0.18:
|
||||
version "0.0.18"
|
||||
resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.18.tgz#99d6623d65292e8ce3fdb1d133a358caaa2145e7"
|
||||
integrity sha512-XPI9aVsFy3dvgDZvyGWrFnknNiyb22kg5nHgxa0vjWTH9ENLBgVRZt9A64xHZ8BYihH+gl0p/1JNOCIEUzRPBg==
|
||||
react-native-codegen@^0.0.17:
|
||||
version "0.0.17"
|
||||
resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.17.tgz#83fb814d94061cbd46667f510d2ddba35ffb50ac"
|
||||
integrity sha512-7GIEUmAemH9uWwB6iYXNNsPoPgH06pxzGRmdBzK98TgFBdYJZ7CBuZFPMe4jmHQTPOkQazKZ/w5O6/71JBixmw==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.14.0"
|
||||
flow-parser "^0.121.0"
|
||||
@@ -6601,10 +6601,10 @@ react-native-version@^3.1.0:
|
||||
resolve-from "^5.0.0"
|
||||
semver "^6.0.0"
|
||||
|
||||
react-native@0.68.5:
|
||||
version "0.68.5"
|
||||
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.68.5.tgz#8ba7389e00b757c59b6ea23bf38303d52367d155"
|
||||
integrity sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ==
|
||||
react-native@0.68.3:
|
||||
version "0.68.3"
|
||||
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.68.3.tgz#07ac7374acde9bc5e80f9e473e03d6b730528f1c"
|
||||
integrity sha512-LPgLQ4e96NWCrJPKlXzKfvlg1ddhfUplsEg00/cfBIMFZPJn2inzo9Rym8I/JYjmRORe4GjGY8kOem72hPm0Lw==
|
||||
dependencies:
|
||||
"@jest/create-cache-key-function" "^27.0.1"
|
||||
"@react-native-community/cli" "^7.0.3"
|
||||
@@ -6626,9 +6626,9 @@ react-native@0.68.5:
|
||||
metro-source-map "0.67.0"
|
||||
nullthrows "^1.1.1"
|
||||
pretty-format "^26.5.2"
|
||||
promise "^8.2.0"
|
||||
promise "^8.0.3"
|
||||
react-devtools-core "^4.23.0"
|
||||
react-native-codegen "^0.0.18"
|
||||
react-native-codegen "^0.0.17"
|
||||
react-native-gradle-plugin "^0.0.6"
|
||||
react-refresh "^0.4.0"
|
||||
react-shallow-renderer "16.14.1"
|
||||
|
||||
Reference in New Issue
Block a user