Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
297 commits
Select commit Hold shift + click to select a range
03dc30e
Removed cookbook logs
shavkunov Nov 27, 2016
3ad5981
Some minor changes
ArgentumWalker Nov 27, 2016
0f6fd85
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Nov 27, 2016
bc8f2a8
ShoppingList check fix
ArgentumWalker Nov 27, 2016
0f99bd4
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Nov 27, 2016
ffe9f40
fixed images of recipes, new order of ingredients
shavkunov Nov 27, 2016
9b34aea
added лимонад
shavkunov Nov 27, 2016
0f6d168
added шоколадная колбаса
shavkunov Nov 27, 2016
5ecadc9
added 10 recipe
shavkunov Nov 27, 2016
360c857
added 11 recipe
shavkunov Nov 27, 2016
8bb48f6
added 12 recipe
shavkunov Nov 28, 2016
fce32cd
reworked logic of parsing : new ingredients parse
shavkunov Nov 28, 2016
a96ebf0
removed build
shavkunov Nov 28, 2016
fe0e58b
fixed query of cookbook
shavkunov Nov 28, 2016
c217e04
Reworked generating week menu
shavkunov Nov 28, 2016
e93bbc9
some minor fixes
ArgentumWalker Nov 28, 2016
7ea7426
Created Random as private field for optimize queries
shavkunov Nov 28, 2016
b0ad2e7
Fix nullPtrEx
ArgentumWalker Nov 28, 2016
7750b61
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Nov 28, 2016
a6666d8
RecipeViewActivity show categories
ArgentumWalker Nov 28, 2016
d09b4c0
RecipeView Category click
ArgentumWalker Dec 2, 2016
2f4bf07
RecipeView step images at bottom
ArgentumWalker Dec 2, 2016
4cd2ffe
MenuViewActivity fix bug with broken recipe id
ArgentumWalker Dec 2, 2016
c93b1d7
MenuView GenerateBtn OnClick method
ArgentumWalker Dec 2, 2016
b2c82cb
CookBookActivity change grouping by type.
ArgentumWalker Dec 2, 2016
4f08b3d
Add logo
ArgentumWalker Dec 3, 2016
250d45c
refactored creating database
shavkunov Dec 4, 2016
80e207a
added recipes
shavkunov Dec 4, 2016
41c4281
refactored category
shavkunov Dec 4, 2016
8f9dd89
refactored recipe
shavkunov Dec 4, 2016
38cabe2
Layout beautify
ArgentumWalker Dec 4, 2016
dc7da3b
refactored Cookbook Storage; added new recipes
shavkunov Dec 4, 2016
167400e
refactored ingredient
shavkunov Dec 4, 2016
158b2e0
simplified conditions in CookbookStorage
shavkunov Dec 4, 2016
a16944d
little cosmetic fixes
shavkunov Dec 4, 2016
2cb64d1
added category types
shavkunov Dec 8, 2016
cecff89
updated gitignore
shavkunov Dec 8, 2016
bb45f86
refactored usage of category type
shavkunov Dec 8, 2016
13b2b85
removed Category name
shavkunov Dec 8, 2016
091a40c
simplified Recipe
shavkunov Dec 8, 2016
f5681dc
Merge commit
ArgentumWalker Dec 9, 2016
4eb0d62
refactored creating database : switched to MySQL server; images uplo…
shavkunov Dec 9, 2016
21ffc62
uploading files into folder
shavkunov Dec 9, 2016
da900a4
fix bugs and added small comments
shavkunov Dec 9, 2016
5adcc63
Chacnge MenuStorage Interface & add DayMenu class
ArgentumWalker Dec 10, 2016
2493c95
Add menu settings
ArgentumWalker Dec 10, 2016
1ef6f08
Implement menu generator
ArgentumWalker Dec 10, 2016
5122472
Fix MenuViewActivity
ArgentumWalker Dec 10, 2016
323fa42
Remove logger from MenuStorage
ArgentumWalker Dec 10, 2016
abfab1e
Fix MealtimeSettings preferences
ArgentumWalker Dec 10, 2016
219571a
Add MenuSettingsActivity
ArgentumWalker Dec 10, 2016
70f84ad
Beautify MenuSettingsActivity
ArgentumWalker Dec 10, 2016
9e07524
ChooseMealtime ClickListners implementation
ArgentumWalker Dec 10, 2016
7b14f58
MenuSettings btnClickers implement
ArgentumWalker Dec 11, 2016
5eb045a
Make CookBookActivity callable foor result
ArgentumWalker Dec 11, 2016
3daab23
Calling CookBookActivity from MealtimeSettingsActivity
ArgentumWalker Dec 11, 2016
c893838
Change ImageButtons size
ArgentumWalker Dec 11, 2016
2cf0f12
begin of refactoring methods server : getRecipesCategories
shavkunov Dec 11, 2016
780e792
refactored getting recipe steps
shavkunov Dec 11, 2016
1ec5ebd
refactored getting recipe ingredients
shavkunov Dec 11, 2016
8665f34
refactored getting recipe
shavkunov Dec 11, 2016
f681250
refactored filtering recipes
shavkunov Dec 11, 2016
e3697e6
changed out to log
shavkunov Dec 11, 2016
f6a1327
refactored getting recipes of category
shavkunov Dec 11, 2016
8666974
refactored getting category
shavkunov Dec 11, 2016
6d1f636
refactored getting categories from query
shavkunov Dec 11, 2016
05c8835
optimized getting random dish
shavkunov Dec 11, 2016
2195a90
removed context
shavkunov Dec 11, 2016
96df3a1
added insertion recipe categories
shavkunov Dec 11, 2016
c192eed
removed creation of unused table
shavkunov Dec 11, 2016
6b94c95
removed drop queries of week menu
shavkunov Dec 11, 2016
2c9d044
fill ingredients
shavkunov Dec 11, 2016
7c64c9f
Set recipes in MenuView Clickable
ArgentumWalker Dec 11, 2016
746ef72
added uploading images
shavkunov Dec 11, 2016
b327400
added comments
shavkunov Dec 11, 2016
6e737d2
Add editing menu
ArgentumWalker Dec 11, 2016
bc9da88
Change buttons size
ArgentumWalker Dec 11, 2016
6f28c07
added strict mode for connections
shavkunov Dec 14, 2016
b09ae66
Minor changes
ArgentumWalker Dec 14, 2016
7e97d8b
Add BootCompleteReceiver
ArgentumWalker Dec 14, 2016
4612e6e
Simple notificaion service
ArgentumWalker Dec 14, 2016
f1b15f3
Notification settings module
ArgentumWalker Dec 14, 2016
a6c67f4
Minor changes
ArgentumWalker Dec 14, 2016
12494c3
Simple NotificationSettingsActivity
ArgentumWalker Dec 14, 2016
c452dd1
removed database creator
shavkunov Dec 17, 2016
16abef6
implemented new cloud setup
shavkunov Dec 17, 2016
1d634bc
added source to upload
shavkunov Dec 17, 2016
2f932e0
added some comments
shavkunov Dec 17, 2016
e116720
completed upload recipe to cloud; implemented load from cloud
shavkunov Dec 17, 2016
55bc616
Minor Changes & Base of EditRecipeActivity
ArgentumWalker Dec 17, 2016
c00765e
Merge commit
ArgentumWalker Dec 17, 2016
61439ed
Resolve after-merge problems
ArgentumWalker Dec 17, 2016
512c940
fixed some bugs
shavkunov Dec 17, 2016
d092abb
Resolve after-merge problems
ArgentumWalker Dec 17, 2016
f3f80b3
Merge branch 'Model-skeleton' of https://github.com/shavkunov/FoodMan…
shavkunov Dec 17, 2016
fc3cde7
implemented getRecipeFromCategoriesIntersect
shavkunov Dec 18, 2016
176c7c7
implemented likes feature
shavkunov Dec 18, 2016
cf6303c
added comments
shavkunov Dec 18, 2016
fa1de5d
Add animated loader
ArgentumWalker Dec 18, 2016
89ec46f
implemented favorites feature
shavkunov Dec 18, 2016
8246c8b
serialized menu settings
shavkunov Dec 18, 2016
391d4c1
serialized menu storage
shavkunov Dec 18, 2016
02b9eb9
serialized notification settings
shavkunov Dec 18, 2016
6f3a43c
serialized presets
shavkunov Dec 18, 2016
3d9162a
added context in right places
shavkunov Dec 18, 2016
8498e72
Add recipe
ArgentumWalker Dec 19, 2016
94824c8
Add beautify recipe
ArgentumWalker Dec 19, 2016
1efcb36
Shopping list show quantity
ArgentumWalker Dec 19, 2016
d1b4c22
Add some loaders
ArgentumWalker Dec 19, 2016
261701b
ShoppingList Modify
ArgentumWalker Dec 21, 2016
364f642
Add some loaders
ArgentumWalker Dec 21, 2016
1284863
Remove add button from shopping list
ArgentumWalker Dec 21, 2016
39eb95c
Make GifView resizable
ArgentumWalker Dec 21, 2016
f06c9a7
Minor changes & basic like-favorite brns
ArgentumWalker Dec 22, 2016
0da4307
Add favouritesBtn to menu & implement some recipe btns
ArgentumWalker Dec 23, 2016
ef9f3c5
Resolve after-merge problems
ArgentumWalker Dec 23, 2016
2f974d9
Resolve after-merge problems
ArgentumWalker Dec 23, 2016
3afd1a9
Implement add to favourite and like OnClick methods
ArgentumWalker Dec 23, 2016
386e866
Implement open favourites
ArgentumWalker Dec 24, 2016
847cb02
fixed like query
shavkunov Dec 25, 2016
0a281fc
attempt to fix connections
shavkunov Dec 25, 2016
4573bb1
minor fixes
shavkunov Dec 25, 2016
746c0cd
added removing of recipe from favorites
shavkunov Dec 25, 2016
77e6301
implemented clearing favorites
shavkunov Dec 25, 2016
ef71bea
Cosmetic changes
ArgentumWalker Dec 25, 2016
31ebf4c
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Dec 25, 2016
9f85d5f
Minor changes
ArgentumWalker Dec 25, 2016
141e4c9
fixed deleting like
shavkunov Dec 25, 2016
d50f290
fix getting connection in getLike
shavkunov Dec 25, 2016
e9a678e
Minor changes
ArgentumWalker Dec 25, 2016
81314e1
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Dec 25, 2016
cc58ff5
implemented serialize of shopping list
shavkunov Dec 25, 2016
0600808
Minor changes
ArgentumWalker Dec 25, 2016
b836fc6
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Dec 25, 2016
8a4210b
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Dec 25, 2016
6d62a0c
Resolve some prblems with connection
ArgentumWalker Dec 26, 2016
97640af
removed database setup
shavkunov Feb 8, 2017
bce8bee
removed context from category
shavkunov Feb 9, 2017
3562c4b
Split MainActivity and loaderAnimationSelector classes
ArgentumWalker Feb 9, 2017
e136d44
Some NotificationService bugfix
ArgentumWalker Feb 9, 2017
8e77bb5
Some requested changes
ArgentumWalker Feb 9, 2017
5355af1
secured SQL Injection
shavkunov Feb 9, 2017
f715405
getting information about step and downloading image step are now sep…
shavkunov Feb 9, 2017
8e950a8
minor queries fix
shavkunov Feb 9, 2017
470f929
changed interface of using likes
shavkunov Feb 10, 2017
f28b033
favorites data in the cloud
shavkunov Feb 11, 2017
6d25c99
removed static property at mealtime class
shavkunov Feb 11, 2017
60b7c88
renamed getRecipes to getRecipeIDs
shavkunov Feb 11, 2017
0015f0a
minor fixes, user settings saved to database
shavkunov Feb 13, 2017
e9b2a37
implemented loading settings
shavkunov Feb 13, 2017
00fc950
created class mealtime
shavkunov Feb 13, 2017
e1c4847
refactored addition recipe to database
shavkunov Feb 13, 2017
3339104
added comments
shavkunov Feb 13, 2017
40b6647
little comment fix
shavkunov Feb 13, 2017
d17b257
changed signature of insertion recipe methods
shavkunov Feb 13, 2017
2d8496f
removed favorites filename
shavkunov Feb 13, 2017
5fb2e79
Merge
ArgentumWalker Feb 13, 2017
bfd3397
download images in other thread
ArgentumWalker Feb 13, 2017
ac81766
fixed null pointer in settings
shavkunov Feb 13, 2017
1bc638a
started implemented feature of edit recipe
shavkunov Feb 13, 2017
4b0e836
edit main information and categories of recipe
shavkunov Feb 14, 2017
5dc131a
implemented editing of recipe
shavkunov Feb 14, 2017
186f353
added comments
shavkunov Feb 14, 2017
7194249
implemented steps editing
shavkunov Feb 14, 2017
49b9eab
cosmetic fix cookbook storage
shavkunov Feb 14, 2017
fb20679
cosmetic fixes
shavkunov Feb 14, 2017
9a9f146
bugfix
ArgentumWalker Feb 14, 2017
1375aec
Merge remote-tracking branch 'origin/Model-skeleton' into UI-basic-st…
ArgentumWalker Feb 14, 2017
f2e8f3c
Edit recipe frontend logic
ArgentumWalker Feb 14, 2017
7bccbe7
Edit Recipe
ArgentumWalker Feb 14, 2017
3055ce1
bugfix
ArgentumWalker Feb 15, 2017
6c37c4b
added relation between user and recipe
shavkunov Feb 15, 2017
b1332af
implemented changing recipe
shavkunov Feb 15, 2017
60a651f
completed changing recipe
shavkunov Feb 15, 2017
4fe86de
implemented deletion of recipe
shavkunov Feb 15, 2017
717a0cd
added transactions to changing and deleting recipe
shavkunov Feb 16, 2017
f741a33
Search actvity logic
ArgentumWalker Feb 16, 2017
b7af49a
Search btn added
ArgentumWalker Feb 16, 2017
351c1b7
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Feb 16, 2017
a48e79f
added exception to handle while adding recipe to db
shavkunov Feb 16, 2017
1607317
Hot bugfix
ArgentumWalker Feb 16, 2017
f527b6f
HOT bugfix
ArgentumWalker Feb 16, 2017
4d44134
Change name of LoaderAnimationSelector
ArgentumWalker Feb 16, 2017
9568525
Upgrade search
ArgentumWalker Feb 16, 2017
28dcc21
Upgrade search
ArgentumWalker Feb 16, 2017
0a73471
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Feb 16, 2017
e19424a
bugfix
ArgentumWalker Feb 16, 2017
e9e5ece
bugfix
ArgentumWalker Feb 16, 2017
48cb880
minor fix
shavkunov Feb 16, 2017
02dcbc6
fix problems with intent
ArgentumWalker Feb 16, 2017
fa4323e
fixed sql filter query
shavkunov Feb 16, 2017
0d8485c
fix
shavkunov Feb 16, 2017
df25335
minor filter fix
shavkunov Feb 16, 2017
9b18aac
hide loader
ArgentumWalker Feb 16, 2017
802d43e
fixed bug with filter recipe
shavkunov Feb 16, 2017
8c1bda6
Move gettinc connection to another thread
ArgentumWalker Feb 16, 2017
0c18907
Merge branch 'Model-skeleton' of github.com:shavkunov/FoodManager int…
ArgentumWalker Feb 16, 2017
b04a0be
fixed creating recipe
shavkunov Feb 16, 2017
7dcc215
Merge branch 'Model-skeleton' of https://github.com/shavkunov/FoodMan…
shavkunov Feb 16, 2017
3efdfda
Add User Permissions checking
ArgentumWalker Feb 16, 2017
f2a10ed
minor fix
shavkunov Feb 16, 2017
1fa4bac
Add new searchBtn img
ArgentumWalker Feb 16, 2017
1decfe1
fixed generate week menu
shavkunov Feb 16, 2017
d5d28c0
fix:)
ArgentumWalker Feb 16, 2017
162d5fb
fix
shavkunov Feb 16, 2017
da27111
some fixes
ArgentumWalker Feb 16, 2017
cc9183e
Merge branch 'Model-skeleton' of github.com:shavkunov/FoodManager int…
ArgentumWalker Feb 16, 2017
be0db11
attempt to fix refresh connection
shavkunov Feb 16, 2017
bb5f246
UI fixes
ArgentumWalker Feb 18, 2017
ee5601b
UI fixes
ArgentumWalker Feb 18, 2017
b64dbec
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Feb 18, 2017
a7c2e0f
UI fis
ArgentumWalker Feb 18, 2017
1569ea0
UI fixes
ArgentumWalker Feb 20, 2017
4da2171
Some major fixes
ArgentumWalker Feb 24, 2017
e097083
Merge branch 'UI-basic-structure' into Model-skeleton
ArgentumWalker Feb 24, 2017
a368ee7
reimplemented getting recipe
shavkunov Feb 25, 2017
369689f
reimplemented getting recipe categories
shavkunov Feb 25, 2017
5082c9e
reimplemented getting recipe ingredients
shavkunov Feb 25, 2017
7f3811a
reimplemented getting recipe steps
shavkunov Feb 25, 2017
40f923f
reimplemented filter search
shavkunov Feb 25, 2017
e62d79b
reimplemented get user settings
shavkunov Feb 25, 2017
68c1c6d
reimplemeted user like
shavkunov Feb 25, 2017
78d7014
reimplemented likes lifecycle
shavkunov Feb 25, 2017
6edbbe7
refactored favorites lifecycle
shavkunov Feb 25, 2017
85e38a5
reimplemented getting recipe categories
shavkunov Feb 25, 2017
772c942
implemented getting list of categories
shavkunov Feb 25, 2017
a3d915a
refactored saving user settings
shavkunov Feb 25, 2017
919d340
reimplemented choice of random dish
shavkunov Feb 25, 2017
287de65
reimplemented checking owning of recipe
shavkunov Feb 25, 2017
2682b3a
refactored insert recipe
shavkunov Feb 25, 2017
f1f4a68
refactored deleting recipe
shavkunov Feb 26, 2017
9c98962
refactored changing recipe
shavkunov Feb 26, 2017
c219487
moved commands to Commands class
shavkunov Feb 26, 2017
7414325
minor fix
shavkunov Feb 26, 2017
9baee58
removed useless separators
shavkunov Feb 26, 2017
09aa9d1
updated Readme
shavkunov Feb 26, 2017
9e172c1
big fix
ArgentumWalker Feb 26, 2017
5f89631
fixed serializable byte stream
shavkunov Feb 26, 2017
790ddc8
server is now local
shavkunov Feb 26, 2017
af10d98
big fix
ArgentumWalker Feb 26, 2017
7297c86
Merge branch 'Model-skeleton' of github.com:shavkunov/FoodManager int…
ArgentumWalker Feb 26, 2017
54f8e36
fixed null pointer iterator on steps
shavkunov Feb 26, 2017
48a8d19
increased time out of connect
shavkunov Feb 26, 2017
7fc80b1
moved server to cloud
shavkunov Feb 26, 2017
42b99ef
fix
shavkunov Feb 26, 2017
172310f
bugfix
ArgentumWalker Feb 26, 2017
cc575c7
uploading image in application
shavkunov Feb 26, 2017
80b7389
minor fix
ArgentumWalker Feb 26, 2017
f94840a
insert recipe returns id of recipe
shavkunov Feb 27, 2017
2214ac9
hotfix
ArgentumWalker Feb 27, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
local.properties
.DS_Store
/Database/content.db
/Database/build

# User-specific stuff:
.idea/workspace.xml
.idea/tasks.xml

# Sensitive or high-churn files:
.idea/dataSources/
.idea/dataSources.ids
.idea/dataSources.xml
.idea/dataSources.local.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea

# Gradle:
.idea/gradle.xml
.idea/libraries
.gradle
/build/


# Mongo Explorer plugin:
.idea/mongoSettings.xml

## File-based project format:
*.iws
*.iml

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# FoodManager
Android project

Ссылка на сервер: https://github.com/shavkunov/FoodManagerServer
1 change: 1 addition & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
38 changes: 38 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
apply plugin: 'com.android.application'

sourceCompatibility = 1.7

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "ru.spbau.mit.foodmanager"
minSdkVersion 23
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}

sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/java/mod'] } }
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.13'
compile group: 'com.cloudinary', name: 'cloudinary-android', version: '1.5.0'
testCompile 'junit:junit:4.12'
}
17 changes: 17 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /home/ArgentumWalker/Android/Sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ru.spbau.mit.foodmanager;

import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

/**
* Instrumentation test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();

assertEquals("ru.spbau.mit.foodmanager", appContext.getPackageName());
}
}
52 changes: 52 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.spbau.mit.foodmanager">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true">
<receiver android:name=".BootCompleteReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

<activity android:name=".MainActivity" android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".CookBookActivity" android:theme="@style/AppTheme" />
<activity android:name=".CookBookCategoryActivity" android:theme="@style/AppTheme" />
<activity android:name=".RecipeViewActivity" android:theme="@style/AppTheme" />
<activity android:name=".ShoppingListActivity" android:theme="@style/AppTheme" />
<activity android:name=".MenuViewActivity" android:theme="@style/AppTheme" />
<activity android:name=".StepViewActivity" android:theme="@style/AppTheme" />
<activity android:name=".SettingsActivity" android:theme="@style/AppTheme" />
<activity android:name=".MenuSettingsActivity" android:theme="@style/AppTheme" />
<activity android:name=".ChooseMealtimePresetActivity" android:theme="@style/AppTheme" />
<activity android:name=".MealtimeSettingsActivity" android:theme="@style/AppTheme" />

<service
android:name=".NotificationService"
android:enabled="true"
android:exported="true"
android:process=":FoodManagerNotificationService" />

<activity android:name=".NotificationSettingsActivity" android:theme="@style/AppTheme" />
<activity android:name=".EditRecipeActivity" android:theme="@style/AppTheme" />
<activity android:name=".EditStepActivity" android:theme="@style/AppTheme" />
<activity android:name=".SearchRecipeActivity" android:theme="@style/TransparentTheme"/>
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package ru.spbau.mit.foodmanager;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
* Узнает о запуске Андроида и запускает процесс нотификаций
*/

public class BootCompleteReceiver extends BroadcastReceiver {
public BootCompleteReceiver() {

}
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, NotificationService.class));
}
}
34 changes: 34 additions & 0 deletions app/src/main/java/ru/spbau/mit/foodmanager/Category.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package ru.spbau.mit.foodmanager;

import android.content.Context;
import android.graphics.Bitmap;

import java.util.ArrayList;

public class Category {
private String description;
private int ID;
private Bitmap image;

public Category(int ID, String description, Bitmap image) {
this.ID = ID;
this.description = description;
this.image = image;
}

public int getID() {
return ID;
}

public String getDescription() {
return description;
}

public ArrayList<Recipe> getRecipes(Context context) {
return CookBookStorage.getInstance(context).getRecipesOfCategory(this.ID);
}

public Bitmap getImage() {
return image;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
package ru.spbau.mit.foodmanager;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;

public class ChooseMealtimePresetActivity extends AppCompatActivity {
private static final int REQUEST_ADD = 0;
private static final int REQUEST_EDIT = 1;
private MenuSettings menuSettings;
private ArrayList<DaySettings.MealtimeSettings> presets;
private HashMap<DaySettings.MealtimeSettings, View> presetView;
private LayoutInflater inflater;
private LinearLayout presetList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.choose_mealtime_preset);
menuSettings = MenuSettings.getInstance(this);
presets = DaySettings.getMealtimePresets(this);
inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
presetList = (LinearLayout) findViewById(R.id.choose_mealtime_preset_list);
presetView = new HashMap<>();
fillPresets();
}

@Override
protected void onDestroy() {
super.onDestroy();
DaySettings.savePresets(this);
}

private void fillPresets() {
final LinearLayout v = presetList;
for (final DaySettings.MealtimeSettings settings : presets) {
v.addView(generatePresetView(v, settings));
}
ImageButton addBtn = (ImageButton) findViewById(R.id.choose_mealtime_preset_add);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ChooseMealtimePresetActivity.this,
MealtimeSettingsActivity.class);
startActivityForResult(intent, REQUEST_ADD);
}
});
}

public void onActivityResult(int requestCode, int errorCode, Intent resultContainer) {
switch (requestCode) {
case REQUEST_ADD :
if (errorCode == RESULT_OK) {
DaySettings.MealtimeSettings result =
(DaySettings.MealtimeSettings) resultContainer.getSerializableExtra("Result");
presets.add(result);
presetList.addView(generatePresetView(presetList, result));
}
break;
case REQUEST_EDIT :
if (errorCode == RESULT_OK) {
DaySettings.MealtimeSettings result =
(DaySettings.MealtimeSettings) resultContainer.getSerializableExtra("Result");
Integer position = resultContainer.getIntExtra("Position", -1);
presets.get(position).clone(result);
TextView mealtimeName = (TextView) presetView.get(presets.get(position))
.findViewById(R.id.menu_settings_day_mealtime_name);
mealtimeName.setText(result.getName());
}
break;
}
}

private View generatePresetView(final LinearLayout v, final DaySettings.MealtimeSettings settings) {
final View preset = inflater.inflate(R.layout.menu_settings_day_mealtime, null);
TextView mealtimeName = (TextView) preset.findViewById(R.id.menu_settings_day_mealtime_name);
ImageButton editBtn = (ImageButton) preset.findViewById(R.id.menu_settings_day_mealtime_edit);
ImageButton delBtn = (ImageButton) preset.findViewById(R.id.menu_settings_day_mealtime_delete);
final Integer position = presets.indexOf(settings);

mealtimeName.setText(settings.getName());
mealtimeName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
returnResult(settings);
}
});
editBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ChooseMealtimePresetActivity.this,
MealtimeSettingsActivity.class);
intent.putExtra("Settings", settings);
intent.putExtra("Position", position);
startActivityForResult(intent, REQUEST_EDIT);
}
});
delBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
presets.remove(settings);
v.removeView(preset);
}
});
presetView.put(settings, preset);
return preset;
}

private void returnResult(DaySettings.MealtimeSettings result) {
Intent intent = getIntent();
intent.putExtra("Result", result);
setResult(RESULT_OK, intent);
finish();
}
}
Loading