Advertisement
Guest User

Untitled

a guest
Jun 14th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. package thyroid.com.thyroidmenu;
  2.  
  3.  
  4. import android.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.support.v4.app.FragmentManager;
  7. import android.support.v4.widget.DrawerLayout;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.support.v7.widget.Toolbar;
  10. import android.util.Log;
  11. import android.view.MenuItem;
  12. import android.view.View;
  13. import android.widget.AdapterView;
  14. import android.widget.ListView;
  15.  
  16. public class MainActivity extends AppCompatActivity {
  17.  
  18. private String[] mNavigationDrawerItemTitles;
  19. private DrawerLayout mDrawerLayout;
  20. private ListView mDrawerList;
  21. Toolbar toolbar;
  22. private CharSequence mDrawerTitle;
  23. private CharSequence mTitle;
  24. android.support.v7.app.ActionBarDrawerToggle mDrawerToggle;
  25.  
  26. @Override
  27. protected void onCreate(Bundle savedInstanceState) {
  28. super.onCreate(savedInstanceState);
  29. setContentView(R.layout.activity_main);
  30. mTitle = mDrawerTitle = getTitle();
  31. mNavigationDrawerItemTitles= getResources().getStringArray(R.array.navigation_drawer_items_array);
  32. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  33. mDrawerList = (ListView) findViewById(R.id.left_drawer);
  34.  
  35. setupToolbar();
  36.  
  37. DataModel[] drawerItem = new DataModel[3];
  38.  
  39. drawerItem[0] = new DataModel(R.drawable.connect, "Connect");
  40. drawerItem[1] = new DataModel(R.drawable.fixtures, "Fixtures");
  41. drawerItem[2] = new DataModel(R.drawable.table, "Table");
  42. drawerItem[3] = new DataModel(R.drawable.table, "Table");
  43. drawerItem[4] = new DataModel(R.drawable.fixtures, "Table");
  44. getSupportActionBar().setDisplayHomeAsUpEnabled(false);
  45. getSupportActionBar().setHomeButtonEnabled(true);
  46.  
  47. DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.list_view_item_row, drawerItem);
  48. mDrawerList.setAdapter(adapter);
  49. mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
  50. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  51. mDrawerLayout.setDrawerListener(mDrawerToggle);
  52. setupDrawerToggle();
  53.  
  54.  
  55. }
  56.  
  57. private class DrawerItemClickListener implements ListView.OnItemClickListener {
  58.  
  59. @Override
  60. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  61. selectItem(position);
  62. }
  63.  
  64. }
  65.  
  66. private void selectItem(int position) {
  67.  
  68. RegisterFragment fragment = null;
  69.  
  70. switch (position) {
  71. case 0:
  72. fragment = new ConnectFragment();
  73. break;
  74. case 1:
  75. fragment = new FixturesFragment();
  76. break;
  77. case 2:
  78. fragment = new TableFragment();
  79. break;
  80. case 3:
  81. fragment = new LoginFragment();
  82. break;
  83. case 4:
  84. fragment = new RegisterFragment();
  85. break;
  86.  
  87. default:
  88. break;
  89. }
  90.  
  91. if (fragment != null) {
  92. FragmentManager fragmentManager = getSupportFragmentManager();
  93. fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
  94.  
  95. mDrawerList.setItemChecked(position, true);
  96. mDrawerList.setSelection(position);
  97. setTitle(mNavigationDrawerItemTitles[position]);
  98. mDrawerLayout.closeDrawer(mDrawerList);
  99.  
  100. } else {
  101. Log.e("MainActivity", "Error in creating fragment");
  102. }
  103. }
  104.  
  105. @Override
  106. public boolean onOptionsItemSelected(MenuItem item) {
  107.  
  108. if (mDrawerToggle.onOptionsItemSelected(item)) {
  109. return true;
  110. }
  111.  
  112. return super.onOptionsItemSelected(item);
  113. }
  114.  
  115. @Override
  116. public void setTitle(CharSequence title) {
  117. mTitle = title;
  118. getSupportActionBar().setTitle(mTitle);
  119. }
  120.  
  121. @Override
  122. protected void onPostCreate(Bundle savedInstanceState) {
  123. super.onPostCreate(savedInstanceState);
  124. mDrawerToggle.syncState();
  125. }
  126.  
  127. void setupToolbar(){
  128. toolbar = (Toolbar) findViewById(R.id.toolbar);
  129. setSupportActionBar(toolbar);
  130. getSupportActionBar().setDisplayShowHomeEnabled(true);
  131. }
  132.  
  133. void setupDrawerToggle(){
  134. mDrawerToggle = new android.support.v7.app.ActionBarDrawerToggle(this,mDrawerLayout,toolbar,R.string.app_name, R.string.app_name);
  135. //This is necessary to change the icon of the Drawer Toggle upon state change.
  136. mDrawerToggle.syncState();
  137. }
  138.  
  139. }
  140.  
  141. package thyroid.com.thyroidmenu;
  142.  
  143.  
  144. import android.app.Fragment;
  145. import android.app.FragmentTransaction;
  146. import android.content.SharedPreferences;
  147. import android.os.Bundle;
  148. import android.support.design.widget.Snackbar;
  149. import android.support.v7.widget.AppCompatButton;
  150. import android.util.Log;
  151. import android.view.LayoutInflater;
  152. import android.view.View;
  153. import android.view.ViewGroup;
  154. import android.widget.EditText;
  155. import android.widget.ProgressBar;
  156. import android.widget.TextView;
  157.  
  158.  
  159. import retrofit2.Call;
  160. import retrofit2.Callback;
  161. import retrofit2.Retrofit;
  162. import retrofit2.converter.gson.GsonConverterFactory;
  163. import thyroid.com.thyroidmenu.models.ServerRequest;
  164. import thyroid.com.thyroidmenu.models.ServerResponse;
  165. import thyroid.com.thyroidmenu.models.User;
  166.  
  167.  
  168. public class LoginFragment extends Fragment implements View.OnClickListener{
  169.  
  170. private AppCompatButton btn_login;
  171. private EditText et_email,et_password;
  172. private TextView tv_register,tv_reset_password;
  173. private ProgressBar progress;
  174. private SharedPreferences pref;
  175.  
  176.  
  177. @Override
  178. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  179.  
  180. View view = inflater.inflate(R.layout.fragment_login,container,false);
  181. initViews(view);
  182. return view;
  183. }
  184.  
  185. private void initViews(View view){
  186.  
  187. pref = getActivity().getPreferences(0);
  188.  
  189. btn_login = (AppCompatButton)view.findViewById(R.id.btn_login);
  190. tv_register = (TextView)view.findViewById(R.id.tv_register);
  191. tv_reset_password = (TextView)view.findViewById(R.id.tv_reset_password);
  192. et_email = (EditText)view.findViewById(R.id.et_email);
  193. et_password = (EditText)view.findViewById(R.id.et_password);
  194.  
  195. progress = (ProgressBar)view.findViewById(R.id.progress);
  196.  
  197. btn_login.setOnClickListener(this);
  198. tv_register.setOnClickListener(this);
  199. tv_reset_password.setOnClickListener(this);
  200. }
  201.  
  202. @Override
  203. public void onClick(View view) {
  204.  
  205. switch (view.getId()){
  206.  
  207.  
  208.  
  209. case R.id.tv_register:
  210. goToRegister();
  211. break;
  212.  
  213. case R.id.btn_login:
  214. String email = et_email.getText().toString();
  215. String password = et_password.getText().toString();
  216.  
  217. if(!email.isEmpty() && !password.isEmpty()) {
  218.  
  219. progress.setVisibility(View.VISIBLE);
  220. loginProcess(email,password);
  221.  
  222. } else {
  223.  
  224. Snackbar.make(getView(), "Fields are empty !", Snackbar.LENGTH_LONG).show();
  225. }
  226. break;
  227. case R.id.tv_reset_password:
  228. goToResetPassword();
  229. break;
  230. }
  231. }
  232. private void loginProcess(String email,String password){
  233.  
  234. Retrofit retrofit = new Retrofit.Builder()
  235. .baseUrl(Constants.BASE_URL)
  236. .addConverterFactory(GsonConverterFactory.create())
  237. .build();
  238.  
  239. RequestInterface requestInterface = retrofit.create(RequestInterface.class);
  240.  
  241. User user = new User();
  242. user.setEmail(email);
  243. user.setPassword(password);
  244. ServerRequest request = new ServerRequest();
  245. request.setOperation(Constants.LOGIN_OPERATION);
  246. request.setUser(user);
  247. Call<ServerResponse> response = requestInterface.operation(request);
  248.  
  249. response.enqueue(new Callback<ServerResponse>() {
  250. @Override
  251. public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
  252.  
  253. ServerResponse resp = response.body();
  254. Snackbar.make(getView(), resp.getMessage(), Snackbar.LENGTH_LONG).show();
  255.  
  256. if(resp.getResult().equals(Constants.SUCCESS)){
  257. SharedPreferences.Editor editor = pref.edit();
  258. editor.putBoolean(Constants.IS_LOGGED_IN,true);
  259. editor.putString(Constants.EMAIL,resp.getUser().getEmail());
  260. editor.putString(Constants.NAME,resp.getUser().getName());
  261. editor.putString(Constants.UNIQUE_ID,resp.getUser().getUnique_id());
  262. editor.apply();
  263. goToProfile();
  264.  
  265. }
  266. progress.setVisibility(View.INVISIBLE);
  267. }
  268.  
  269. @Override
  270. public void onFailure(Call<ServerResponse> call, Throwable t) {
  271.  
  272. progress.setVisibility(View.INVISIBLE);
  273. Log.d(Constants.TAG,"failed");
  274. Snackbar.make(getView(), t.getLocalizedMessage(), Snackbar.LENGTH_LONG).show();
  275.  
  276. }
  277. });
  278. }
  279.  
  280. private void goToResetPassword(){
  281.  
  282. Fragment reset = new ResetPasswordFragment();
  283. FragmentTransaction ft = getFragmentManager().beginTransaction();
  284. ft.replace(R.id.fragment_frame,reset);
  285. ft.commit();
  286. }
  287.  
  288. private void goToRegister(){
  289.  
  290. Fragment register = new RegisterFragment();
  291. FragmentTransaction ft = getFragmentManager().beginTransaction();
  292. ft.replace(R.id.fragment_frame,register);
  293. ft.commit();
  294. }
  295.  
  296. private void goToProfile(){
  297.  
  298. Fragment profile = new ProfileFragment();
  299. FragmentTransaction ft = getFragmentManager().beginTransaction();
  300. ft.replace(R.id.fragment_frame,profile);
  301. ft.commit();
  302. }
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement