diff --git a/app/build.gradle b/app/build.gradle index d82ef3d..1cf4876 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,5 +24,6 @@ dependencies { testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.0.0' compile 'com.android.support:design:24.0.0' + compile 'com.squareup.picasso:picasso:2.5.2' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 97ca196..f7efba0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,13 +2,21 @@ + + + + + + + diff --git a/app/src/main/java/com/softdesign/devintensive/data/managers/DataManager.java b/app/src/main/java/com/softdesign/devintensive/data/managers/DataManager.java new file mode 100644 index 0000000..e023adc --- /dev/null +++ b/app/src/main/java/com/softdesign/devintensive/data/managers/DataManager.java @@ -0,0 +1,21 @@ +package com.softdesign.devintensive.data.managers; + + public class DataManager { + private static DataManager INSTANCE = null; + private PreferencesManager mPreferencesManager; + + public DataManager() { + this.mPreferencesManager = new PreferencesManager(); + } + + public static DataManager getInstance(){ + if(INSTANCE == null){ + INSTANCE = new DataManager(); + } + return INSTANCE; + } + + public PreferencesManager getPreferencesManager(){ + return mPreferencesManager; + } + } \ No newline at end of file diff --git a/app/src/main/java/com/softdesign/devintensive/data/managers/PreferencesManager.java b/app/src/main/java/com/softdesign/devintensive/data/managers/PreferencesManager.java new file mode 100644 index 0000000..89dce5c --- /dev/null +++ b/app/src/main/java/com/softdesign/devintensive/data/managers/PreferencesManager.java @@ -0,0 +1,48 @@ +package com.softdesign.devintensive.data.managers; + +import android.content.SharedPreferences; +import android.net.Uri; + +import com.softdesign.devintensive.R; +import com.softdesign.devintensive.utils.ConstantManager; +import com.softdesign.devintensive.utils.DevIntensiveApplication; +import java.util.ArrayList; +import java.util.List; + + public class PreferencesManager { + + private SharedPreferences mSharedPreferences; + private static final String[] USER_FIELDS = {ConstantManager.USER_PHONE_KEY, ConstantManager.USER_MAIL_KEY ,ConstantManager.USER_VK_KEY,ConstantManager.USER_GIT_KEY,ConstantManager.USER_BIO_KEY}; + + public PreferencesManager(){ + this.mSharedPreferences = DevIntensiveApplication.getSharedPreferences(); + } + public void saveUserProfileData(List userFields){ + SharedPreferences.Editor editor = mSharedPreferences.edit(); + for (int i = 0; i < USER_FIELDS.length; i++) { + editor.putString(USER_FIELDS[i],userFields.get(i)); + } + editor.apply(); + } + + public List loadUserProfileData(){ + List userFields = new ArrayList<>(); + userFields.add(mSharedPreferences.getString(ConstantManager.USER_PHONE_KEY,"null")); + userFields.add(mSharedPreferences.getString(ConstantManager.USER_MAIL_KEY,"null")); + userFields.add(mSharedPreferences.getString(ConstantManager.USER_VK_KEY,"null")); + userFields.add(mSharedPreferences.getString(ConstantManager.USER_GIT_KEY, "null")); + userFields.add(mSharedPreferences.getString(ConstantManager.USER_BIO_KEY,"null")); + return userFields; + } + + public void saveUserPhoto(Uri uri) { + SharedPreferences.Editor editor = mSharedPreferences.edit(); + editor.putString(ConstantManager.USER_PHOTO_KEY, uri.toString()); + editor.apply(); + } + + public Uri loadUserPhoto(){ + return Uri.parse(mSharedPreferences.getString(ConstantManager.USER_PHOTO_KEY, "android.resource://com.softdesign.devintensive/drawable/userfoto")); + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/softdesign/devintensive/ui/activities/BaseActivity.java b/app/src/main/java/com/softdesign/devintensive/ui/activities/BaseActivity.java new file mode 100644 index 0000000..0f4b16a --- /dev/null +++ b/app/src/main/java/com/softdesign/devintensive/ui/activities/BaseActivity.java @@ -0,0 +1,51 @@ +package com.softdesign.devintensive.ui.activities; + +import android.app.ProgressDialog; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.widget.Toast; + +import com.softdesign.devintensive.R; +import com.softdesign.devintensive.utils.ConstantManager; + +/** + * Created by Andrey on 27.06.2016. + */ +public class BaseActivity extends AppCompatActivity { + static final String TAG = ConstantManager.TAG_PREFIX + "BaseActivity"; + protected ProgressDialog mProgressDialog; + + public void showProgress(){ + if (mProgressDialog==null){ + mProgressDialog = new ProgressDialog(this, R.style.custom_dialog); + mProgressDialog.setCancelable(false); + mProgressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + mProgressDialog.show(); + mProgressDialog.setContentView(R.layout.progress_splash); + } else { + mProgressDialog.show(); + mProgressDialog.setContentView(R.layout.progress_splash); + } + + } + + public void hideProgress(){ + if (mProgressDialog != null){ + if (mProgressDialog.isShowing()) { + mProgressDialog.hide(); + } + } + } + + public void showError(String message, Exception error){ + showToast(message); + Log.e(TAG, String.valueOf(error)); + } + + + public void showToast(String message){ + Toast.makeText(this, message, Toast.LENGTH_LONG); + } +} diff --git a/app/src/main/java/com/softdesign/devintensive/ui/activities/MainActivity.java b/app/src/main/java/com/softdesign/devintensive/ui/activities/MainActivity.java index 5efd500..528081a 100644 --- a/app/src/main/java/com/softdesign/devintensive/ui/activities/MainActivity.java +++ b/app/src/main/java/com/softdesign/devintensive/ui/activities/MainActivity.java @@ -1,20 +1,136 @@ package com.softdesign.devintensive.ui.activities; -import android.support.v7.app.AppCompatActivity; +import android.Manifest; +import android.app.Dialog; +import android.content.ContentValues; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.graphics.Color; +import android.net.Uri; +import android.os.Environment; +import android.provider.MediaStore; +import android.provider.Settings; +import android.support.annotation.NonNull; +import android.support.design.widget.AppBarLayout; +import android.support.design.widget.CollapsingToolbarLayout; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.NavigationView; +import android.support.design.widget.Snackbar; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AlertDialog; import android.os.Bundle; +import android.support.v7.widget.Toolbar; import android.util.Log; - +import android.view.MenuItem; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.RelativeLayout; import com.softdesign.devintensive.R; +import com.softdesign.devintensive.data.managers.DataManager; import com.softdesign.devintensive.utils.ConstantManager; +import com.squareup.picasso.Picasso; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = ConstantManager.TAG_PREFIX + "Main Activity"; + private ImageView mPhone, mEmail, mVk, mGit; + private CoordinatorLayout mCoordinatorLayout; + private Toolbar mToolbar; + private DrawerLayout mNavigationDrawer; + private DataManager mDataManager; + private int mCurrentEditMode = 0; + private FloatingActionButton mFab; + private CollapsingToolbarLayout mCollapsingToolbar; + private AppBarLayout mAppBarLayout; + private AppBarLayout.LayoutParams mAppBarParams = null; + private ImageView mProfileImage; + private File mPhotoFile = null; + private Uri mSelectedImage = null; + private EditText mUserPhone, mUserMail, mUserVk, mUserGit, mUserBio; + private List mUserInfoViews; + private RelativeLayout mProfilePlaceholder; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "onCreate"); + mDataManager = DataManager.getInstance(); + + mPhone = (ImageView)findViewById(R.id.phone_view); + mEmail = (ImageView)findViewById(R.id.email_view); + mVk = (ImageView)findViewById(R.id.Vk_view); + mGit = (ImageView)findViewById(R.id.git_view); + + mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.main_coordinator_container); + mToolbar = (Toolbar)findViewById(R.id.toolbar); + mNavigationDrawer = (DrawerLayout)findViewById(R.id.navigation_drawer); + mFab = (FloatingActionButton) findViewById(R.id.fab); + mProfilePlaceholder = (RelativeLayout) findViewById(R.id.profile_placeholder); + mCollapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); + mProfileImage = (ImageView) findViewById(R.id.user_photo_img); + mAppBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout); + + mUserPhone = (EditText)findViewById(R.id.phone_et); + mUserMail = (EditText)findViewById(R.id.email_et); + mUserVk = (EditText)findViewById(R.id.VK_et); + mUserGit = (EditText)findViewById(R.id.git_et); + mUserBio = (EditText)findViewById(R.id.bio_et); + + mUserInfoViews = new ArrayList<>(); + mUserInfoViews.add(mUserPhone); + mUserInfoViews.add(mUserMail); + mUserInfoViews.add(mUserVk); + mUserInfoViews.add(mUserGit); + mUserInfoViews.add(mUserBio); + + mUserInfoViews = new ArrayList<>(); + mUserInfoViews.add(mUserPhone); + mUserInfoViews.add(mUserMail); + mUserInfoViews.add(mUserVk); + mUserInfoViews.add(mUserGit); + mUserInfoViews.add(mUserBio); + + mPhone.setOnClickListener(this); + mEmail.setOnClickListener(this); + mVk.setOnClickListener(this); + mGit.setOnClickListener(this); + mFab.setOnClickListener(this); + mProfilePlaceholder.setOnClickListener(this); + setupToolbar(); + setupDrawer(); + loadUserInfoValue(); + Picasso.with(this) + .load(mDataManager.getPreferencesManager().loadUserPhoto()) + .placeholder(R.drawable.login_bg) + .into(mProfileImage); + + if (savedInstanceState == null){//Активити запускается впервые + } else { //Активити уже создавалось + mCurrentEditMode = savedInstanceState.getInt(ConstantManager.EDIT_MODE_KEY, 0); + changeEditMode(mCurrentEditMode); + } + } + + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == android.R.id.home) { + mNavigationDrawer.openDrawer(GravityCompat.START); + } + return super.onOptionsItemSelected(item); } @Override @@ -47,8 +163,260 @@ protected void onDestroy() { Log.d(TAG, "onDestroy"); } + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(ConstantManager.EDIT_MODE_KEY, mCurrentEditMode); + } + + @Override + public void onClick(View v) { //метод обработки нажатий на элементы + switch (v.getId()) { + case R.id.fab: + if (mCurrentEditMode == 0) { + changeEditMode(1); + mCurrentEditMode = 1; + } else { + changeEditMode(0); + mCurrentEditMode = 0; + } + break; + + case R.id.profile_placeholder: + showDialog(ConstantManager.LOAD_PROFILE_PHOTO); + break; + + case R.id.phone_view: + Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + mUserPhone.getText().toString())); + startActivity(intent); + break; + + case R.id.email_view: + Intent intent2 = new Intent(Intent.ACTION_SEND); + intent2.setType("plain/text"); + intent2.putExtra(Intent.EXTRA_EMAIL, mUserMail.getText().toString()); + startActivity(Intent.createChooser(intent2, "Выберите email-клиент")); + break; + + case R.id.Vk_view: + Uri uriVk3 = Uri.parse("http://" + mUserVk.getText().toString()); + Intent vkIntent3 = new Intent(Intent.ACTION_VIEW, uriVk3); + startActivity(vkIntent3); + break; + + case R.id.git_view: + Uri uriVk4 = Uri.parse("http://" + mUserGit.getText().toString()); + Intent vkIntent4 = new Intent(Intent.ACTION_VIEW, uriVk4); + startActivity(vkIntent4); + break; + } + } + + private void setupToolbar(){ + setSupportActionBar(mToolbar); + ActionBar actionBar = getSupportActionBar(); + mAppBarParams = (AppBarLayout.LayoutParams) mCollapsingToolbar.getLayoutParams(); + if (actionBar != null){ + actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_black_24dp); + actionBar.setDisplayHomeAsUpEnabled(true); + } + } + + private void changeEditMode(int mode) { + if(mode == 1) { + mFab.setImageResource(R.drawable.ic_done_black_24dp); + for (EditText userValue : mUserInfoViews) { + userValue.setEnabled(true); + userValue.setFocusable(true); + userValue.setFocusableInTouchMode(true); + showProfilePlaceholder(); + lockToolbar(); + mCollapsingToolbar.setExpandedTitleColor(Color.TRANSPARENT); + } + } + else { + mFab.setImageResource(R.drawable.ic_create_black_24dp); + for (EditText userValue : mUserInfoViews) { + userValue.setEnabled(false); + userValue.setFocusable(false); + userValue.setFocusableInTouchMode(false); + hideProfilePlaceholder(); + unlockToolbar(); + saveUserInfoValue(); + mCollapsingToolbar.setExpandedTitleColor(getResources().getColor(R.color.white)); + } + } + } + private void loadUserInfoValue(){ + List userData = mDataManager.getPreferencesManager().loadUserProfileData(); + for (int i = 0; i < userData.size(); i++) { + mUserInfoViews.get(i).setText(userData.get(i)); + } + } + + private void saveUserInfoValue(){ + List userData = new ArrayList<>(); + for (EditText userFieldView : mUserInfoViews) { + userData.add(userFieldView.getText().toString()); + } + mDataManager.getPreferencesManager().saveUserProfileData(userData); + } + private void setupDrawer(){ + NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); + navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(MenuItem item) { + showSnackbar(item.getTitle().toString()); + item.setChecked(true); + mNavigationDrawer.closeDrawer(GravityCompat.START); + return false; + } + }); + } + private void showSnackbar(String message){ + Snackbar.make(mCoordinatorLayout, message, Snackbar.LENGTH_LONG).show(); + } + + //получение результатов из другой Activity (фото из камеры или фотогалереи) + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case ConstantManager.REQUEST_GALLERY_PICTURE: + if (resultCode == RESULT_OK && data != null) { + mSelectedImage = data.getData(); + insertProfileImage(mSelectedImage); + } + break; + + case ConstantManager.REQUEST_CAMERA_PICTURE: + if (resultCode == RESULT_OK && mPhotoFile != null) { + mSelectedImage = Uri.fromFile(mPhotoFile); + insertProfileImage(mSelectedImage); + } + } + + } + private void loadPhotoFromGalery(){ + Intent takeIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + takeIntent.setType("image/*"); + startActivityForResult(Intent.createChooser(takeIntent, getString(R.string.user_profile_choose_message)), ConstantManager.REQUEST_GALLERY_PICTURE); + } + private void loadPhotoFromCamera(){ + if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED + && ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + Intent takeCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + try { + mPhotoFile = createImageFile(); + } catch (IOException e) { + e.printStackTrace(); + } + + if (mPhotoFile != null) { + takeCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile)); + startActivityForResult(takeCaptureIntent, ConstantManager.REQUEST_CAMERA_PICTURE); + } + } else { + ActivityCompat.requestPermissions(this, new String[]{ + Manifest.permission.CAMERA, + Manifest.permission.WRITE_EXTERNAL_STORAGE + }, ConstantManager.CAMERA_REQUEST_PERMISSION_CODE); + Snackbar.make(mCoordinatorLayout, "Для корректной работы приложения необходимо дать требуемые разрешения", Snackbar.LENGTH_LONG) + .setAction("Разрешить", new View.OnClickListener() { + @Override + public void onClick(View view) { + openApplicationSettings(); + } + }) .show(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + if (requestCode == ConstantManager.CAMERA_REQUEST_PERMISSION_CODE && grantResults.length == 2) { + if (grantResults[0] == PackageManager.PERMISSION_GRANTED){ + //TODO 07.07.2016 обрабатываем разрешение (разрешение получено) + // например вывести сообщение или обработать какой-то логикой + } + if (grantResults[1] == PackageManager.PERMISSION_GRANTED){ + //TODO 07.07.2016 обрабатываем разрешение (разрешение получено) + // например вывести сообщение или обработать какой-то логикой + } + } + } + + private void hideProfilePlaceholder(){ + mProfilePlaceholder.setVisibility(View.GONE); + } -} + private void showProfilePlaceholder(){ + mProfilePlaceholder.setVisibility(View.VISIBLE); + } + + private void lockToolbar(){ + mAppBarLayout.setExpanded(true,true); + mAppBarParams.setScrollFlags(0); + mCollapsingToolbar.setLayoutParams(mAppBarParams); + } + + private void unlockToolbar(){ + mAppBarParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED); + mCollapsingToolbar.setLayoutParams(mAppBarParams); + } + + @Override + protected Dialog onCreateDialog(int id) { + switch (id){ + case ConstantManager.LOAD_PROFILE_PHOTO: + String[] selectItems = {getString(R.string.user_profile_dialog_gallery), getString(R.string.user_profile_dialog_camera), getString(R.string.user_profile_dialog_cancel)}; + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(getString(R.string.user_profile_dialog_title)); + builder.setItems(selectItems, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int choiceItem) { + switch (choiceItem){ + case 0: + loadPhotoFromGalery(); + break; + case 1: + loadPhotoFromCamera(); + break; + case 2: + dialog.cancel(); + break; + } + } + }); + return builder.create(); + default: return null; + } + } + + private File createImageFile() throws IOException{ + String timeStamp = new java.text.SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); + String imageFileName = "JPEG_" + timeStamp + "_"; + File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); + File image = File.createTempFile(imageFileName, ".jpg", storageDir); + ContentValues values = new ContentValues(); + values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis()); + values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); + values.put(MediaStore.MediaColumns.DATA, image.getAbsolutePath()); + this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); + return image; + } + + private void insertProfileImage(Uri selectedImage) { + Picasso.with(this) + .load(selectedImage) + .placeholder(R.drawable.login_bg) + .into(mProfileImage); + mDataManager.getPreferencesManager().saveUserPhoto(selectedImage); + } + + public void openApplicationSettings(){ + Intent appSettingsIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + getPackageName())); + startActivityForResult(appSettingsIntent, ConstantManager.PERMISSION_REQUEST_SETTINGS_CODE); + } + } diff --git a/app/src/main/java/com/softdesign/devintensive/ui/activities/login.java b/app/src/main/java/com/softdesign/devintensive/ui/activities/login.java new file mode 100644 index 0000000..c50d4b7 --- /dev/null +++ b/app/src/main/java/com/softdesign/devintensive/ui/activities/login.java @@ -0,0 +1,15 @@ +package com.softdesign.devintensive.ui.activities; + +import android.os.Bundle; + import android.support.v7.app.AppCompatActivity; + + import com.softdesign.devintensive.R; + + + public class login extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.login); + } + } diff --git a/app/src/main/java/com/softdesign/devintensive/utils/ConstantManager.java b/app/src/main/java/com/softdesign/devintensive/utils/ConstantManager.java index ffce592..faf2038 100644 --- a/app/src/main/java/com/softdesign/devintensive/utils/ConstantManager.java +++ b/app/src/main/java/com/softdesign/devintensive/utils/ConstantManager.java @@ -5,4 +5,18 @@ */ public interface ConstantManager { String TAG_PREFIX = "DEV"; + + String EDIT_MODE_KEY = "EDIT_MODE_KEY"; + String USER_PHONE_KEY = "USER_1_KEY"; + String USER_MAIL_KEY = "USER_2_KEY"; + String USER_VK_KEY = "USER_3_KEY"; + String USER_GIT_KEY = "USER_4_KEY"; + String USER_BIO_KEY = "USER_5_KEY"; + String USER_PHOTO_KEY = "USER_PHOTO_KEY"; + + int LOAD_PROFILE_PHOTO = 1; + int REQUEST_CAMERA_PICTURE = 99; + int REQUEST_GALLERY_PICTURE = 88; + int PERMISSION_REQUEST_SETTINGS_CODE = 101; + int CAMERA_REQUEST_PERMISSION_CODE = 102; } diff --git a/app/src/main/java/com/softdesign/devintensive/utils/DevintensiveApplication.java b/app/src/main/java/com/softdesign/devintensive/utils/DevintensiveApplication.java new file mode 100644 index 0000000..d096839 --- /dev/null +++ b/app/src/main/java/com/softdesign/devintensive/utils/DevintensiveApplication.java @@ -0,0 +1,22 @@ +package com.softdesign.devintensive.utils; +import android.app.Application; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +/** + * Created by Andrey on 30.06.2016. + */ + +public class DevIntensiveApplication extends Application{ + + public static SharedPreferences sSharedPreferences; + + @Override + public void onCreate() { + super.onCreate(); + sSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + } + + public static SharedPreferences getSharedPreferences() { + return sSharedPreferences; + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/header_bg.jpeg b/app/src/main/res/drawable/header_bg.jpeg new file mode 100644 index 0000000..07017d1 Binary files /dev/null and b/app/src/main/res/drawable/header_bg.jpeg differ diff --git a/app/src/main/res/drawable/ic_account_circle_black_24dp.xml b/app/src/main/res/drawable/ic_account_circle_black_24dp.xml new file mode 100644 index 0000000..7678580 --- /dev/null +++ b/app/src/main/res/drawable/ic_account_circle_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_add_a_photo_black_24dp.xml b/app/src/main/res/drawable/ic_add_a_photo_black_24dp.xml new file mode 100644 index 0000000..81fc004 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_a_photo_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_create_black_24dp.xml b/app/src/main/res/drawable/ic_create_black_24dp.xml new file mode 100644 index 0000000..5958d6e --- /dev/null +++ b/app/src/main/res/drawable/ic_create_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_done_black_24dp.xml b/app/src/main/res/drawable/ic_done_black_24dp.xml new file mode 100644 index 0000000..98e4898 --- /dev/null +++ b/app/src/main/res/drawable/ic_done_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_edit_black_24dp.xml b/app/src/main/res/drawable/ic_edit_black_24dp.xml new file mode 100644 index 0000000..2ab2fb7 --- /dev/null +++ b/app/src/main/res/drawable/ic_edit_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_black_24dp.xml b/app/src/main/res/drawable/ic_menu_black_24dp.xml new file mode 100644 index 0000000..9458f66 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_people_black_24dp.xml b/app/src/main/res/drawable/ic_people_black_24dp.xml new file mode 100644 index 0000000..4cfd869 --- /dev/null +++ b/app/src/main/res/drawable/ic_people_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/userfoto.jpg b/app/src/main/res/drawable/userfoto.jpg new file mode 100644 index 0000000..a3396cd Binary files /dev/null and b/app/src/main/res/drawable/userfoto.jpg differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 5136fb8..c34135e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,385 +1,101 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + android:layout_height="match_parent" + android:layout_gravity="left" + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer_menu"> + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml new file mode 100644 index 0000000..ce68cb0 --- /dev/null +++ b/app/src/main/res/layout/drawer_header.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/login.xml b/app/src/main/res/layout/login.xml new file mode 100644 index 0000000..0b91fd1 --- /dev/null +++ b/app/src/main/res/layout/login.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + +