From 4e6ef1fdfe88b3a4f0c30f96c4e0745be0704b2a Mon Sep 17 00:00:00 2001 From: Henry Wang Date: Thu, 15 Sep 2016 17:58:45 -0500 Subject: [PATCH] Fix issue #24 and replace inner with anonymous classes --- .../yourpisd/ClassSwipeActivity.java | 8 +- .../app/sunstreak/yourpisd/LoginActivity.java | 2 +- .../app/sunstreak/yourpisd/MainActivity.java | 147 ++++++++---------- 3 files changed, 69 insertions(+), 88 deletions(-) diff --git a/app/src/main/java/app/sunstreak/yourpisd/ClassSwipeActivity.java b/app/src/main/java/app/sunstreak/yourpisd/ClassSwipeActivity.java index 7df86f1..7d23c59 100644 --- a/app/src/main/java/app/sunstreak/yourpisd/ClassSwipeActivity.java +++ b/app/src/main/java/app/sunstreak/yourpisd/ClassSwipeActivity.java @@ -53,7 +53,6 @@ public class ClassSwipeActivity extends ActionBarActivity { static ViewPager mViewPager; static int studentIndex; - static int classCount; static int classesMade = 0; static int termNum; static boolean doneMakingClasses; @@ -79,11 +78,9 @@ protected void onCreate(Bundle savedInstanceState) { spinner.getIndeterminateDrawable().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); toolbar.addView(spinner); - classCount = getIntent().getExtras().getInt("classCount"); - termNum = getIntent().getExtras().getInt("termNum"); studentIndex = getIntent().getExtras().getInt("studentIndex"); - int startIndex = getIntent().getExtras().getInt("classIndex"); + termNum = getIntent().getExtras().getInt("termNum"); setTitle(TermFinder.Term.values()[termNum].name); @@ -204,7 +201,6 @@ public boolean onOptionsItemSelected(MenuItem item) { intent = new Intent(this, ClassSwipeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("studentIndex", studentIndex); - intent.putExtra("classCount", classCount); intent.putExtra("classIndex", mViewPager.getCurrentItem()); // Don't go into the negatives! intent.putExtra("termNum", Math.max(termNum - 1, 0)); @@ -217,7 +213,6 @@ public boolean onOptionsItemSelected(MenuItem item) { intent = new Intent(this, ClassSwipeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("studentIndex", studentIndex); - intent.putExtra("classCount", classCount); intent.putExtra("classIndex", mViewPager.getCurrentItem()); // Don't go too positive! intent.putExtra("termNum", Math.min(termNum + 1, ClassReport.NUM_TERMS - 1)); @@ -295,7 +290,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Intent intent = new Intent(getActivity(), LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - intent.putExtra("show", true); startActivity(intent); } diff --git a/app/src/main/java/app/sunstreak/yourpisd/LoginActivity.java b/app/src/main/java/app/sunstreak/yourpisd/LoginActivity.java index b739bf3..0797bb7 100644 --- a/app/src/main/java/app/sunstreak/yourpisd/LoginActivity.java +++ b/app/src/main/java/app/sunstreak/yourpisd/LoginActivity.java @@ -112,7 +112,7 @@ protected void onCreate(Bundle savedInstanceState) { boolean refresh = getIntent().getExtras().getBoolean("Refresh"); session = ((YPApplication) getApplication()).session; - if (refresh) { + if (refresh && session != null) { mEmail = session.getUsername(); mPassword = session.getPassword(); showProgress(true); diff --git a/app/src/main/java/app/sunstreak/yourpisd/MainActivity.java b/app/src/main/java/app/sunstreak/yourpisd/MainActivity.java index 63c7423..02816f9 100644 --- a/app/src/main/java/app/sunstreak/yourpisd/MainActivity.java +++ b/app/src/main/java/app/sunstreak/yourpisd/MainActivity.java @@ -68,9 +68,6 @@ */ public class MainActivity extends ActionBarActivity { - public static final int CURRENT_TERM_INDEX = TermFinder - .getCurrentTermIndex(); - static int classCount; static RelativeLayout[] layoutAverages; static int[] goals; static Session session; @@ -125,7 +122,14 @@ protected void onCreate(Bundle savedInstanceState) { getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); SCREEN_HEIGHT = displaymetrics.heightPixels; SCREEN_WIDTH = displaymetrics.widthPixels; + session = ((YPApplication) getApplication()).session; + if (session == null) + { + logout(); + return; + } + // Create the adapter that will return a fragment for each of the three // primary sections of the app. @@ -274,6 +278,27 @@ public boolean onCreateOptionsMenu(Menu menu) { return super.onCreateOptionsMenu(menu); } + private void logout() + { + if (session != null) + { + UserLogoutTask logout = new UserLogoutTask(); + logout.execute(session); + ((YPApplication) getApplication()).session = session = null; + + Editor editor = getSharedPreferences( + "LoginActivity", Context.MODE_PRIVATE).edit(); + editor.putBoolean("auto_login", false); + editor.commit(); + } + // attendanceTask.cancel(true); + // attendanceTask = null; + + Intent intent = new Intent(this, LoginActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { // Pass the event to ActionBarDrawerToggle, if it returns @@ -285,20 +310,7 @@ public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.log_out: - UserLogoutTask logout = new UserLogoutTask(); - logout.execute(session); - ((YPApplication) getApplication()).session = session = null; - // attendanceTask.cancel(true); - // attendanceTask = null; - Editor editor = getSharedPreferences( - "LoginActivity", Context.MODE_PRIVATE).edit(); - editor.putBoolean("auto_login", false); - editor.commit(); - - Intent intent = new Intent(this, LoginActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - intent.putExtra("show", true); - startActivity(intent); + logout(); return true; case R.id.credits: System.out.println("SHOWING CREDITS"); @@ -363,7 +375,8 @@ public CharSequence getPageTitle(int position) { return getResources().getString(R.string.main_section_0_title); case 1: - return TermFinder.Term.values()[CURRENT_TERM_INDEX].name; + return TermFinder.Term.values()[TermFinder + .getCurrentTermIndex()].name; case 2: return getResources().getString(R.string.main_section_2_title); case 3: @@ -474,6 +487,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, //TODO: reload semester grades. final int termOff = ClassReport.SEMESTER_TERMS * semesterNum; List classList = session.getCurrentStudent().getSemesterClasses(semester); + int i = 0; for (ClassReport report : classList) { View classSummary = inflater.inflate(R.layout.main_grade_summary_linear_layout, bigLayout, false); @@ -503,8 +517,19 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, if (!report.isClassDisabledAtTerm(term + termOff)) avg = report.getTerm(term + termOff).getGrade(); - termGrade.setOnClickListener(new ClassSwipeOpenerListener( - session.studentIndex, report.getClassID(), term)); + final int classIndex = i; + final int termIndex = term; + termGrade.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), + ClassSwipeActivity.class); + intent.putExtra("studentIndex", session.studentIndex); + intent.putExtra("classIndex", classIndex); + intent.putExtra("termNum", termIndex); + startActivity(intent); + } + }); termGrade.setText(avg == -1 ? "" : avg + ""); termGrade.setGravity(Gravity.CENTER); summary.addView(termGrade); @@ -533,11 +558,12 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, summary.setPadding(5, 0, 5, 0); bigLayout.addView(classSummary); + i++; } - View glue = new View(getActivity()); - glue.setLayoutParams(new LinearLayout.LayoutParams(0, 20, 1f)); - bigLayout.addView(glue); + View empty = new View(getActivity()); + empty.setLayoutParams(new LinearLayout.LayoutParams(0, 20, 1f)); + bigLayout.addView(empty); bigLayout.setWeightSum(1); Button toggleSemester = new Button(getActivity()); @@ -607,32 +633,6 @@ public void onClick(View arg0) { rootView.setLayoutParams(params); return rootView; } - - class ClassSwipeOpenerListener implements OnClickListener { - - int studentIndex; - int classID; - int termIndex; - - ClassSwipeOpenerListener(int studentIndex, int classID, - int termIndex) { - this.studentIndex = studentIndex; - this.classID = classID; - this.termIndex = termIndex; - } - - @Override - public void onClick(View arg0) { - Intent intent = new Intent(getActivity(), - ClassSwipeActivity.class); - intent.putExtra("studentIndex", this.studentIndex); - intent.putExtra("classCount", classCount); - intent.putExtra("classID", this.classID); - intent.putExtra("termNum", this.termIndex); - startActivity(intent); - } - } - } // public static class AttendanceFragment extends YPMainFragment { @@ -794,7 +794,8 @@ public static class MainActivityFragment extends YPMainFragment { public static final String ARG_OBJECT = "object"; private View rootView; private int position; - private int termNum = CURRENT_TERM_INDEX; + private int termNum = TermFinder + .getCurrentTermIndex(); LinearLayout[] profileCards; @Override @@ -805,7 +806,8 @@ public String getPageTitle() { } case 1: - return TermFinder.Term.values()[CURRENT_TERM_INDEX].name; + return TermFinder.Term.values()[TermFinder + .getCurrentTermIndex()].name; // case 2: return // getResources().getString(R.string.main_section_2_title); // case 3: return @@ -1055,7 +1057,7 @@ public void onClick( } List classList = session.getCurrentStudent().getClassesForTerm(termNum); - classCount = classList.size(); + int classCount = classList.size(); goals = new int[classCount]; Arrays.fill(goals, -1); layoutAverages = new RelativeLayout[classCount]; @@ -1084,9 +1086,19 @@ public void onClick( grade.setText(average); } - layoutAverages[i].setOnClickListener(new ClassSwipeOpenerListener( - session.studentIndex, i, - CURRENT_TERM_INDEX)); + final int ind = i; + layoutAverages[i].setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), + ClassSwipeActivity.class); + intent.putExtra("studentIndex", session.studentIndex); + intent.putExtra("classIndex", ind); + intent.putExtra("termNum", TermFinder + .getCurrentTermIndex()); + startActivity(intent); + } + }); bigLayout.addView(layoutAverages[i]); } @@ -1157,31 +1169,6 @@ public void colorStudents() { .setBackgroundResource(R.drawable.card_blue); //TODO: is this correct? } } - - class ClassSwipeOpenerListener implements OnClickListener { - - int studentIndex; - int classIndex; - int termIndex; - - ClassSwipeOpenerListener(int studentIndex, int classIndex, - int termIndex) { - this.studentIndex = studentIndex; - this.classIndex = classIndex; - this.termIndex = termIndex; - } - - @Override - public void onClick(View arg0) { - Intent intent = new Intent(getActivity(), - ClassSwipeActivity.class); - intent.putExtra("studentIndex", this.studentIndex); - intent.putExtra("classCount", classCount); - intent.putExtra("classIndex", this.classIndex); - intent.putExtra("termIndex", this.termIndex); - startActivity(intent); - } - } } public void refresh() {