diff --git a/app/src/main/java/org/communiquons/android/comunic/client/MainActivity.java b/app/src/main/java/org/communiquons/android/comunic/client/MainActivity.java index 854de19..c20cc57 100644 --- a/app/src/main/java/org/communiquons/android/comunic/client/MainActivity.java +++ b/app/src/main/java/org/communiquons/android/comunic/client/MainActivity.java @@ -1,22 +1,23 @@ package org.communiquons.android.comunic.client; import android.app.AlertDialog; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.content.DialogInterface; import android.content.Intent; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.BottomNavigationView; +import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; -import android.widget.ImageView; import android.widget.Toast; import org.communiquons.android.comunic.client.api.APIRequestTask; import org.communiquons.android.comunic.client.data.Account.Account; import org.communiquons.android.comunic.client.data.Account.AccountUtils; -import org.communiquons.android.comunic.client.data.DatabaseHelper; -import org.communiquons.android.comunic.client.data.ImageLoadTask; -import org.communiquons.android.comunic.client.data.UsersInfo.GetUsersInfos; -import org.communiquons.android.comunic.client.data.UsersInfo.UserInfo; +import org.communiquons.android.comunic.client.fragments.FriendsListFragment; +import org.communiquons.android.comunic.client.fragments.UserInfosFragment; /** @@ -41,6 +42,9 @@ public class MainActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + //Enable bottom navigation menu + init_bottom_menu(); + //Check for connectivity if(!APIRequestTask.isAPIavailable(this)){ Toast.makeText(this, R.string.err_no_internet_connection, Toast.LENGTH_SHORT).show(); @@ -48,28 +52,11 @@ public class MainActivity extends AppCompatActivity { //Initialize account objects account = new Account(this); - aUtils = new AccountUtils(this); - //DEVELOPMENT : Try to get information about a user over the network - GetUsersInfos uInfos = new GetUsersInfos(this, new DatabaseHelper(this)); - final ImageView imageView = (ImageView) findViewById(R.id.test_img); - - //Get infos... about me! :) - final int uID = aUtils.get_current_user_id(); - uInfos.get(uID, new GetUsersInfos.getUserInfosCallback() { - @Override - public void callback(UserInfo info) { - if(info == null) - Toast.makeText(MainActivity.this, "Failure !", Toast.LENGTH_SHORT).show(); - else { - Toast.makeText(MainActivity.this, uID + " is " + info.getFullName() + "!", Toast.LENGTH_SHORT).show(); - - new ImageLoadTask(MainActivity.this, info.getAcountImageURL(), imageView).execute(); - - - } - } - }); + //If it is the first time the application is launched, started the user friends tab + if(savedInstanceState == null){ + openFriendsFragment(); + } } @Override @@ -84,7 +71,7 @@ public class MainActivity extends AppCompatActivity { } /** - * Menu creation + * Top menu creation */ @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -108,6 +95,37 @@ public class MainActivity extends AppCompatActivity { } + /** + * Bottom menu creation + */ + void init_bottom_menu(){ + BottomNavigationView navigation = + (BottomNavigationView) findViewById(R.id.main_bottom_navigation); + navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + //Check which option was selected + switch (item.getItemId()) { + + //If the user clicked to show the friends list + case R.id.main_bottom_navigation_friends_list: + openFriendsFragment(); + return true; + + //If the user choosed to show informations about him + case R.id.main_bottom_navigation_me_view: + openUserInfosFragment(); + return true; + + } + + //Selected element not found + return false; + } + }); + } + /** * Ask user to confirm if he really what to sign out or not */ @@ -139,4 +157,28 @@ public class MainActivity extends AppCompatActivity { //Show popup .create().show(); } + + /** + * Open the friends list fragment + */ + void openFriendsFragment(){ + + FriendsListFragment friendsListFragment = new FriendsListFragment(); + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.replace(R.id.main_fragment, friendsListFragment); + transaction.addToBackStack(null); + transaction.commit(); + + } + + /** + * Open the user information fragment + */ + void openUserInfosFragment(){ + UserInfosFragment userInfosFragment = new UserInfosFragment(); + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.replace(R.id.main_fragment, userInfosFragment); + transaction.addToBackStack(null); + transaction.commit(); + } } diff --git a/app/src/main/java/org/communiquons/android/comunic/client/fragments/FriendsListFragment.java b/app/src/main/java/org/communiquons/android/comunic/client/fragments/FriendsListFragment.java new file mode 100644 index 0000000..5492993 --- /dev/null +++ b/app/src/main/java/org/communiquons/android/comunic/client/fragments/FriendsListFragment.java @@ -0,0 +1,30 @@ +package org.communiquons.android.comunic.client.fragments; + +import android.app.Fragment; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import org.communiquons.android.comunic.client.R; + +/** + * Friends list fragment + * + * @author Pierre HUBERT + * Created by pierre on 11/11/17. + */ + +public class FriendsListFragment extends Fragment { + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + Bundle savedInstanceState) { + + //Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_friendslist, container, false); + + } +} diff --git a/app/src/main/java/org/communiquons/android/comunic/client/fragments/UserInfosFragment.java b/app/src/main/java/org/communiquons/android/comunic/client/fragments/UserInfosFragment.java new file mode 100644 index 0000000..3932e79 --- /dev/null +++ b/app/src/main/java/org/communiquons/android/comunic/client/fragments/UserInfosFragment.java @@ -0,0 +1,29 @@ +package org.communiquons.android.comunic.client.fragments; + + +import android.app.Fragment; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import org.communiquons.android.comunic.client.R; + +/** + * User informations fragment + * + * This fragment display informations about the user + * + * @author Pierre HUBERT + * Created by pierre on 11/11/17. + */ + +public class UserInfosFragment extends Fragment { + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_userinfos, container, false); + } +} diff --git a/app/src/main/res/drawable/ic_menu_allfriends.png b/app/src/main/res/drawable/ic_menu_allfriends.png new file mode 100644 index 0000000..c07a7c7 Binary files /dev/null and b/app/src/main/res/drawable/ic_menu_allfriends.png differ diff --git a/app/src/main/res/drawable/ic_menu_home.png b/app/src/main/res/drawable/ic_menu_home.png new file mode 100644 index 0000000..23c67d0 Binary files /dev/null and b/app/src/main/res/drawable/ic_menu_home.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 207fb94..6b10d73 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,28 +1,23 @@ - + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical"> - + + + android:layout_gravity="bottom" + android:background="?android:attr/windowBackground" + app:menu="@menu/main_bottom_navigation" /> - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_friendslist.xml b/app/src/main/res/layout/fragment_friendslist.xml new file mode 100644 index 0000000..0f29d86 --- /dev/null +++ b/app/src/main/res/layout/fragment_friendslist.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_userinfos.xml b/app/src/main/res/layout/fragment_userinfos.xml new file mode 100644 index 0000000..f0d1576 --- /dev/null +++ b/app/src/main/res/layout/fragment_userinfos.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/main_bottom_navigation.xml b/app/src/main/res/menu/main_bottom_navigation.xml new file mode 100644 index 0000000..6ecd4e8 --- /dev/null +++ b/app/src/main/res/menu/main_bottom_navigation.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8e7377d..3d2c924 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,4 +14,6 @@ Are you sure do you want to sign out ? Sign out Cancel + Friends + Me