diff --git a/android/app/src/main/java/com/chatman/ProfileFragment.java b/android/app/src/main/java/com/chatman/ProfileFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..792e7b0abf24d25299b8d78b342bf090bc6f69e8 --- /dev/null +++ b/android/app/src/main/java/com/chatman/ProfileFragment.java @@ -0,0 +1,154 @@ +package com.chatman; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.chatman.helper.PreferencesHelper; + +import org.w3c.dom.Text; + + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link ProfileFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link ProfileFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class ProfileFragment extends Fragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + private ImageView profileImage; + private TextView profileName; + private Button buttonLogout; + + private OnFragmentInteractionListener mListener; + + public ProfileFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment ProfileFragment. + */ + // TODO: Rename and change types and number of parameters + public static ProfileFragment newInstance(String param1, String param2) { + ProfileFragment fragment = new ProfileFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + + View view = inflater.inflate(R.layout.fragment_profile, container, false); + buttonLogout = view.findViewById(R.id.logout); + profileImage = view.findViewById(R.id.profile_image); + profileName = view.findViewById(R.id.profile_name); + + // Inflate the layout for this fragment + return view; + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + buttonLogout.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View v) + { + Intent intent; + intent = new Intent(getContext(), AuthActivity.class); + PreferencesHelper.setUserFirebaseKey(getContext(), ""); + PreferencesHelper.setUserName(getContext(),""); + PreferencesHelper.setHasLogin(getContext(), false); + getActivity().finish(); + startActivity(intent); + } + }); + + Glide.with(this).load(getImage("ic_android_black_96dp")).fitCenter().into(profileImage); + profileName.setText(PreferencesHelper.getUserName(getContext())); + + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + * <p> + * See the Android Training lesson <a href= + * "http://developer.android.com/training/basics/fragments/communicating.html" + * >Communicating with Other Fragments</a> for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } + + public int getImage(String imageName) { + + int drawableResourceId = getContext().getResources().getIdentifier(imageName, "drawable", getContext().getPackageName()); + + return drawableResourceId; + } +} diff --git a/android/app/src/main/res/layout/fragment_profile.xml b/android/app/src/main/res/layout/fragment_profile.xml new file mode 100644 index 0000000000000000000000000000000000000000..8de71fc9f397dca4f55d0b50653563ec7db40b35 --- /dev/null +++ b/android/app/src/main/res/layout/fragment_profile.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/main_content" + tools:context=".ProfileFragment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <de.hdodenhof.circleimageview.CircleImageView + android:id="@+id/profile_image" + android:layout_margin="20dp" + android:layout_width="100dp" + android:layout_height="100dp" + android:layout_gravity="center"/> + + <TextView + android:id="@+id/profile_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:text="Ilham Firdausi Putra" + android:textSize="25sp" + android:layout_marginBottom="20dp"/> + + <Button + android:id="@+id/logout" + style="@style/normal_button" + android:background="@drawable/button_round" + android:layout_marginTop="20dp" + android:layout_marginBottom="20dp" + android:text="Logout" /> + +</LinearLayout> +