diff --git a/app/build.gradle b/app/build.gradle index 750742d..6684c89 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,17 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' + + compile 'com.astuetz:pagerslidingtabstrip:1.0.1' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.astuetz:pagerslidingtabstrip:1.0.1' - + compile 'com.android.support:support-v4:23.1.1' + compile 'com.google.android.gms:play-services-appindexing:8.1.0' + compile 'com.google.code.gson:gson:1.7.2' + compile 'com.makeramen:roundedimageview:2.2.1' + compile 'com.jakewharton:butterknife:7.0.1' + compile 'com.squareup.picasso:picasso:2.5.2' + compile 'com.github.bumptech.glide:glide:3.7.0' + compile 'com.loopj.android:android-async-http:1.4.8' } diff --git a/app/src/androidTest/java/com/example/aparna/wireframes/ApplicationTest.java b/app/src/androidTest/java/com/example/aparna/fit360/ApplicationTest.java similarity index 89% rename from app/src/androidTest/java/com/example/aparna/wireframes/ApplicationTest.java rename to app/src/androidTest/java/com/example/aparna/fit360/ApplicationTest.java index 99a74e4..ab403e1 100644 --- a/app/src/androidTest/java/com/example/aparna/wireframes/ApplicationTest.java +++ b/app/src/androidTest/java/com/example/aparna/fit360/ApplicationTest.java @@ -1,4 +1,4 @@ -package com.example.aparna.wireframes; +package com.example.aparna.fit360; import android.app.Application; import android.test.ApplicationTestCase; diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 96a1cf4..81db98c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,8 @@ + package="com.example.aparna.fit360"> + + @@ -19,18 +21,18 @@ - + diff --git a/app/src/main/java/com/example/aparna/fit360/Fragments/ProfileHeaderFragment.java b/app/src/main/java/com/example/aparna/fit360/Fragments/ProfileHeaderFragment.java new file mode 100644 index 0000000..0dfb20e --- /dev/null +++ b/app/src/main/java/com/example/aparna/fit360/Fragments/ProfileHeaderFragment.java @@ -0,0 +1,29 @@ +package com.example.aparna.fit360.Fragments; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.aparna.fit360.R; + +import butterknife.ButterKnife; + +public class ProfileHeaderFragment extends Fragment { + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { + // Defines the xml file for the fragment + return inflater.inflate(R.layout.fragment_profile_header, parent, false); + } + + // This event is triggered soon after onCreateView(). + // Any view setup should occur here. E.g., view lookups and attaching view listeners. + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + // Setup any handles to view objects here + // EditText etFoo = (EditText) view.findViewById(R.id.etFoo); + ButterKnife.bind(this, view); + } + +} diff --git a/app/src/main/java/com/example/aparna/fit360/Fragments/Tracking.java b/app/src/main/java/com/example/aparna/fit360/Fragments/Tracking.java new file mode 100644 index 0000000..6f991d2 --- /dev/null +++ b/app/src/main/java/com/example/aparna/fit360/Fragments/Tracking.java @@ -0,0 +1,118 @@ +package com.example.aparna.fit360.Fragments; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.provider.MediaStore; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; + +import com.example.aparna.fit360.R; + +import java.io.File; + +import butterknife.Bind; +import butterknife.ButterKnife; + + +public class Tracking extends Fragment { + @Bind(R.id.etWeight) EditText etWeight; + @Bind(R.id.etWater) EditText etWater; + + @Bind(R.id.ivCameraPicture) + ImageView ivCameraPicture; + @Bind(R.id.btnTakePicture) + Button btnTakePicture; + + public final String APP_TAG = "MyCustomApp"; + public final static int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1034; + public String photoFileName = "photo.jpg"; + // The onCreateView method is called when Fragment should create its View object hierarchy, + // either dynamically or via XML layout inflation. + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { + // Defines the xml file for the fragment + return inflater.inflate(R.layout.fragment_tracking, parent, false); + } + + // This event is triggered soon after onCreateView(). + // Any view setup should occur here. E.g., view lookups and attaching view listeners. + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + // Setup any handles to view objects here + // EditText etFoo = (EditText) view.findViewById(R.id.etFoo); + ButterKnife.bind(this, view); + + btnTakePicture.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onLaunchCamera(); + } + }); + + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { + if (resultCode == Activity.RESULT_OK) { + Uri takenPhotoUri = getPhotoFileUri(photoFileName); + // by this point we have the camera photo on disk + Bitmap takenImage = BitmapFactory.decodeFile(takenPhotoUri.getPath()); + // Load the taken image into a preview + ivCameraPicture.setImageBitmap(takenImage); + } else { // Result was a failure +// Toast.makeText(this, "Picture wasn't taken!", Toast.LENGTH_SHORT).show(); + Log.d("DEBUG", "Picture wasn't taken!"); + } + } + } + public void onLaunchCamera() { + // create Intent to take a picture and return control to the calling application + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, getPhotoFileUri(photoFileName)); // set the image file name + + // If you call startActivityForResult() using an intent that no app can handle, your app will crash. + // So as long as the result is not null, it's safe to use the intent. + if (intent.resolveActivity(getContext().getPackageManager()) != null) { + // Start the image capture intent to take photo + startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); + } + } + // Returns the Uri for a photo stored on disk given the fileName + public Uri getPhotoFileUri(String fileName) { + // Only continue if the SD Card is mounted + if (isExternalStorageAvailable()) { + // Get safe storage directory for photos + // Use `getExternalFilesDir` on Context to access package-specific directories. + // This way, we don't need to request external read/write runtime permissions. + File mediaStorageDir = new File( + getContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES), APP_TAG); + + // Create the storage directory if it does not exist + if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()){ + Log.d(APP_TAG, "failed to create directory"); + } + + // Return the file target for the photo based on filename + return Uri.fromFile(new File(mediaStorageDir.getPath() + File.separator + fileName)); + } + return null; + } + + // Returns true if external storage for photos is available + private boolean isExternalStorageAvailable() { + String state = Environment.getExternalStorageState(); + return state.equals(Environment.MEDIA_MOUNTED); + } +} diff --git a/app/src/main/java/com/example/aparna/wireframes/activities/ChatActivity.java b/app/src/main/java/com/example/aparna/fit360/activities/ChatActivity.java similarity index 83% rename from app/src/main/java/com/example/aparna/wireframes/activities/ChatActivity.java rename to app/src/main/java/com/example/aparna/fit360/activities/ChatActivity.java index 3b12679..d975cf8 100644 --- a/app/src/main/java/com/example/aparna/wireframes/activities/ChatActivity.java +++ b/app/src/main/java/com/example/aparna/fit360/activities/ChatActivity.java @@ -1,10 +1,10 @@ -package com.example.aparna.wireframes.activities; +package com.example.aparna.fit360.activities; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import com.example.aparna.wireframes.R; +import com.example.aparna.fit360.R; public class ChatActivity extends AppCompatActivity { diff --git a/app/src/main/java/com/example/aparna/wireframes/activities/CommunityActivity.java b/app/src/main/java/com/example/aparna/fit360/activities/CommunityActivity.java similarity index 83% rename from app/src/main/java/com/example/aparna/wireframes/activities/CommunityActivity.java rename to app/src/main/java/com/example/aparna/fit360/activities/CommunityActivity.java index 90ab47c..b0d639c 100644 --- a/app/src/main/java/com/example/aparna/wireframes/activities/CommunityActivity.java +++ b/app/src/main/java/com/example/aparna/fit360/activities/CommunityActivity.java @@ -1,10 +1,10 @@ -package com.example.aparna.wireframes.activities; +package com.example.aparna.fit360.activities; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import com.example.aparna.wireframes.R; +import com.example.aparna.fit360.R; public class CommunityActivity extends AppCompatActivity { diff --git a/app/src/main/java/com/example/aparna/wireframes/HomeActivity.java b/app/src/main/java/com/example/aparna/fit360/activities/HomeActivity.java similarity index 85% rename from app/src/main/java/com/example/aparna/wireframes/HomeActivity.java rename to app/src/main/java/com/example/aparna/fit360/activities/HomeActivity.java index ed7804a..948a8b3 100644 --- a/app/src/main/java/com/example/aparna/wireframes/HomeActivity.java +++ b/app/src/main/java/com/example/aparna/fit360/activities/HomeActivity.java @@ -1,4 +1,4 @@ -package com.example.aparna.wireframes; +package com.example.aparna.fit360.activities; import android.content.Intent; import android.os.Bundle; @@ -7,13 +7,9 @@ import android.view.Menu; import android.view.MenuItem; -import com.example.aparna.wireframes.activities.ChatActivity; -import com.example.aparna.wireframes.activities.CommunityActivity; -import com.example.aparna.wireframes.activities.MapActivity; -import com.example.aparna.wireframes.activities.ProfileActivity; +import com.example.aparna.fit360.R; public class HomeActivity extends AppCompatActivity { - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/example/aparna/wireframes/activities/MapActivity.java b/app/src/main/java/com/example/aparna/fit360/activities/MapActivity.java similarity index 77% rename from app/src/main/java/com/example/aparna/wireframes/activities/MapActivity.java rename to app/src/main/java/com/example/aparna/fit360/activities/MapActivity.java index 58214d7..9e26aa7 100644 --- a/app/src/main/java/com/example/aparna/wireframes/activities/MapActivity.java +++ b/app/src/main/java/com/example/aparna/fit360/activities/MapActivity.java @@ -1,9 +1,9 @@ -package com.example.aparna.wireframes.activities; +package com.example.aparna.fit360.activities; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; -import com.example.aparna.wireframes.R; +import com.example.aparna.fit360.R; public class MapActivity extends AppCompatActivity { diff --git a/app/src/main/java/com/example/aparna/wireframes/activities/ProfileActivity.java b/app/src/main/java/com/example/aparna/fit360/activities/ProfileActivity.java similarity index 83% rename from app/src/main/java/com/example/aparna/wireframes/activities/ProfileActivity.java rename to app/src/main/java/com/example/aparna/fit360/activities/ProfileActivity.java index a627afd..3360201 100644 --- a/app/src/main/java/com/example/aparna/wireframes/activities/ProfileActivity.java +++ b/app/src/main/java/com/example/aparna/fit360/activities/ProfileActivity.java @@ -1,13 +1,12 @@ -package com.example.aparna.wireframes.activities; +package com.example.aparna.fit360.activities; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import com.example.aparna.wireframes.R; +import com.example.aparna.fit360.R; public class ProfileActivity extends AppCompatActivity { - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -15,5 +14,4 @@ protected void onCreate(Bundle savedInstanceState) { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); } - } diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index b563cb1..51412e9 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" - tools:context="com.example.aparna.wireframes.activities.ChatActivity"> + tools:context="com.example.aparna.fit360.activities.ChatActivity"> + tools:context="com.example.aparna.fit360.activities.CommunityActivity"> + tools:context=".activities.HomeActivity"> + tools:context="com.example.aparna.fit360.activities.MapActivity"> + tools:context="com.example.aparna.fit360.activities.ProfileActivity"> - + + android:layout_below="@id/fragProfileHeader" + /> diff --git a/app/src/main/res/layout/fragment_profile_header.xml b/app/src/main/res/layout/fragment_profile_header.xml new file mode 100644 index 0000000..62e07ee --- /dev/null +++ b/app/src/main/res/layout/fragment_profile_header.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_tracking.xml b/app/src/main/res/layout/fragment_tracking.xml new file mode 100644 index 0000000..0b3d850 --- /dev/null +++ b/app/src/main/res/layout/fragment_tracking.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + +