Skip to content

Commit

Permalink
Merge pull request #32 from bahaaTuffaha/Adding_by_bulk
Browse files Browse the repository at this point in the history
- Introducing bulk mode (you can add either one or multiple items by just taking pictures).
- Fixed issue with settings (checkbox for laundry not updating after import).
- Added option to turn off the dayly Reminder.
- Removed unnecessary permissions.
(Note: android 14 could prevent local notifications from running still looking for a fix.)
  • Loading branch information
bahaaTuffaha committed Apr 25, 2024
2 parents 58eb010 + 0b69e6e commit fe0f912
Show file tree
Hide file tree
Showing 17 changed files with 476 additions and 46 deletions.
4 changes: 2 additions & 2 deletions android/app/build.gradle
Expand Up @@ -99,8 +99,8 @@ android {
applicationId "com.myclosetx"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 3
versionName "1.0.4"
versionCode 4
versionName "1.0.5"
}

splits {
Expand Down
1 change: 1 addition & 0 deletions android/app/src/debug/AndroidManifest.xml
Expand Up @@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools">

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

<application
android:usesCleartextTraffic="true"
Expand Down
7 changes: 6 additions & 1 deletion android/app/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Expand All @@ -7,6 +7,11 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission tools:node="remove" android:name="android.permission.INTERNET" />
<uses-permission tools:node="remove" android:name="android.permission.WAKE_LOCK" />
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission tools:node="remove" android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />

<application
android:name=".MainApplication"
Expand Down
Binary file added assets/images/bulk.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/single.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 7 additions & 15 deletions components/ColorFilter.tsx
@@ -1,18 +1,11 @@
import { Dispatch, SetStateAction, useState } from "react";
import {
StyleSheet,
TouchableOpacity,
View,
useColorScheme,
} from "react-native";
import Icon from "react-native-vector-icons/Fontisto";
import { Dispatch, SetStateAction } from "react";
import { TouchableOpacity, View } from "react-native";
import { ThemeText } from "./ThemeText";
import { colors as appColors } from "../utils/colors";
import { Text } from "react-native-paper";

// const handleSlicePress = (color) => {
// Alert.alert("Color Selected", `You selected color: ${color}`);
// };
import { localization } from "../utils/localization";
import { useSelector } from "react-redux";
import { RootState } from "../redux/store";

const ColorFilter = ({
colors,
Expand All @@ -21,8 +14,6 @@ const ColorFilter = ({
colors: string[];
setColors: Dispatch<SetStateAction<string[]>>;
}) => {
// const isDarkMode = useColorScheme() === "dark";

const basicColors: { [key: string]: string } = {
yellow: "#FEFD00",
yellow_Orange: "#F8A900",
Expand All @@ -41,11 +32,12 @@ const ColorFilter = ({
gray: "#808080",
unknown: "",
};
const storedSettings = useSelector((state: RootState) => state.settings);

return (
<View>
<ThemeText classNameStyle="self-center text-xl font-bold mt-1 my-1">
Filter By Color
{localization.FilterByColor[storedSettings.language]}
</ThemeText>
<View className="flex flex-row flex-wrap w-full">
{Object.keys(basicColors).map((name) => (
Expand Down
9 changes: 7 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "closet-archive",
"version": "1.0.4",
"version": "1.0.5",
"private": true,
"scripts": {
"android": "react-native run-android",
Expand Down Expand Up @@ -55,7 +55,12 @@
"expo-application",
"expo-constants",
"expo-font",
"expo-keep-awake"
"expo-splash-screen",
"expo-notifications",
"expo-updates",
"expo-location",
"expo-web-browser",
"expo-av"
]
}
},
Expand Down
8 changes: 8 additions & 0 deletions redux/settingsSlice.ts
Expand Up @@ -5,13 +5,15 @@ export type SettingsType = {
name: string;
laundryNumber: number;
enableLaundry: boolean;
enableReminder: boolean;
appVer: string;
};
const initialState: SettingsType = {
language: 0,
name: "User",
laundryNumber: 5,
enableLaundry: true,
enableReminder: true,
appVer: "1.0.1",
};
const settingsSlice = createSlice({
Expand All @@ -30,10 +32,15 @@ const settingsSlice = createSlice({
setEnableLaundry: (state, action) => {
state.enableLaundry = action.payload.enableLaundry;
},
setReminder: (state, action) => {
state.enableReminder = action.payload.enableReminder;
},
importSettings: (state, action) => {
state.language = action.payload.language;
state.laundryNumber = action.payload.laundryNumber;
state.name = action.payload.name;
state.enableLaundry = action.payload.enableLaundry;
state.enableReminder = action.payload.enableReminder;
},
setAppVer: (state, action) => {
state.appVer = action.payload.appVer;
Expand All @@ -45,6 +52,7 @@ export const {
userNameSetter,
laundryNumberSetter,
setEnableLaundry,
setReminder,
importSettings,
setAppVer,
} = settingsSlice.actions;
Expand Down
14 changes: 13 additions & 1 deletion routers/stack.tsx
Expand Up @@ -9,14 +9,16 @@ import { EventLogForm } from "../screens/stackNav/EventLogForm";
import { CollectionForm } from "../screens/stackNav/CollectionForm";
import { Settings } from "../screens/stackNav/Settings";
import { ClosetInfo } from "../screens/stackNav/ClosetInfo";
import { ModeScreen } from "../screens/stackNav/ModeScreen";
import { BulkModeForm } from "../screens/stackNav/BulkModeForm";
export default function Navigator() {
const Stack = createNativeStackNavigator();
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="StackNavHome"
component={Home}
component={Home} //it has the bottomNav & notifications
options={{ headerShown: false, orientation: "portrait" }}
/>
<Stack.Screen
Expand All @@ -39,6 +41,16 @@ export default function Navigator() {
component={Category}
options={{ headerShown: false }}
/>
<Stack.Screen
name="ModeScreen"
component={ModeScreen}
options={{ headerShown: false }}
/>
<Stack.Screen
name="BulkModeForm"
component={BulkModeForm}
options={{ headerShown: false }}
/>
<Stack.Screen
name="ItemSelector"
component={ItemSelector}
Expand Down

0 comments on commit fe0f912

Please sign in to comment.