diff --git a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/EncryptionTest.java b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/EncryptionTest.java index cca89ea..9fb37c3 100644 --- a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/EncryptionTest.java +++ b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/EncryptionTest.java @@ -7,6 +7,8 @@ import org.junit.Test; import org.junit.runner.RunWith; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.decrypt; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.encrypt; import static junit.framework.Assert.assertEquals; @RunWith(AndroidJUnit4.class) @@ -16,9 +18,11 @@ public class EncryptionTest { public void testEncryption() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); - String encrypted = EncryptionUtils.encrypt(appContext, "String to Encrypt"); - String decrypted = EncryptionUtils.decrypt(appContext, encrypted); + String encrypted = encrypt(appContext, "String to Encrypt"); + String decrypted = decrypt(appContext, encrypted); assertEquals("String to Encrypt", decrypted); + + } } diff --git a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/NetworkingTest.java b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/NetworkingTest.java index cc15783..9b3edf2 100644 --- a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/NetworkingTest.java +++ b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/NetworkingTest.java @@ -11,15 +11,10 @@ import java.util.List; import java.util.concurrent.CountDownLatch; -import edu.grinnell.appdev.grinnelldirectory.interfaces.APICallerInterface; -import edu.grinnell.appdev.grinnelldirectory.models.Person; +import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; +import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; import edu.grinnell.appdev.grinnelldirectory.models.User; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - @RunWith(AndroidJUnit4.class) public class NetworkingTest { @@ -36,32 +31,33 @@ public void successfulSearchTests() throws Exception { final CountDownLatch latch = new CountDownLatch(2); User user = new User("test1stu", "selfserv1"); - DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { - @Override - public void onSearchSuccess(List people) { - assertNotNull(people); - assertFalse(people.size() == 0); - latch.countDown(); - } - - @Override - public void authenticateUserCallSuccess(boolean success, Person person) { - fail("Test Failed: Not testing authentication."); - latch.countDown(); - } - - @Override - public void onServerFailure(String fail_message) { - fail("Test Failed: " + fail_message); - latch.countDown(); - } - - @Override - public void onNetworkingError(String fail_message) { - fail("Test Failed: " + fail_message); - latch.countDown(); - } - }); + SearchCaller apiCaller = new DBAPICaller((DbSearchCallback) this); +// DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { +// @Override +// public void onSearchSuccess(List people) { +// assertNotNull(people); +// assertFalse(people.size() == 0); +// latch.countDown(); +// } +// +// @Override +// public void authenticateUserCallSuccess(boolean success, Person person) { +// fail("Test Failed: Not testing authentication."); +// latch.countDown(); +// } +// +// @Override +// public void onServerFailure(String fail_message) { +// fail("Test Failed: " + fail_message); +// latch.countDown(); +// } +// +// @Override +// public void onNetworkingError(String fail_message) { +// fail("Test Failed: " + fail_message); +// latch.countDown(); +// } +// }); List test_list_1 = new ArrayList(); test_list_1.add(0, "Nicholas"); @@ -82,14 +78,13 @@ public void onNetworkingError(String fail_message) { test_list_3.add(9, ""); test_list_3.add(10, ""); test_list_3.add(11, ""); - test_list_3.add(12, ""); - test_list_3.add(13, ""); - test_list_3.add(14, ""); // Works - apiCaller.simpleSearch(test_list_1); + apiCaller.simpleSearch(test_list_1.get(0), test_list_1.get(1), test_list_1.get(2), test_list_1.get(3)); // Works - apiCaller.advancedSearch(test_list_3); + apiCaller.advancedSearch(test_list_3.get(0), test_list_3.get(1), test_list_3.get(2), test_list_3.get(3), + test_list_3.get(4), test_list_3.get(5), test_list_3.get(6), test_list_3.get(7), + test_list_3.get(8), test_list_3.get(9), test_list_3.get(10), test_list_3.get(11)); latch.await(); } @@ -100,31 +95,32 @@ public void failingTest() throws Exception { final CountDownLatch latch = new CountDownLatch(2); User user = new User("test1stu", "selfserv1"); - DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { - @Override - public void onSearchSuccess(List people) { - fail("Test Failed: search should not return successful results"); - latch.countDown(); - } - - @Override - public void authenticateUserCallSuccess(boolean success, Person person) { - fail("Test Failed: search should not return successful results"); - latch.countDown(); - } - - @Override - public void onServerFailure(String fail_message) { - assertEquals("\"No records returned\"", fail_message); - latch.countDown(); - } - - @Override - public void onNetworkingError(String fail_message) { - fail("Test Failed: " + fail_message); - latch.countDown(); - } - }); + SearchCaller apiCaller = new DBAPICaller((DbSearchCallback) this); +// DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { +// @Override +// public void onSearchSuccess(List people) { +// fail("Test Failed: search should not return successful results"); +// latch.countDown(); +// } +// +// @Override +// public void authenticateUserCallSuccess(boolean success, Person person) { +// fail("Test Failed: search should not return successful results"); +// latch.countDown(); +// } +// +// @Override +// public void onServerFailure(String fail_message) { +// assertEquals("\"No records returned\"", fail_message); +// latch.countDown(); +// } +// +// @Override +// public void onNetworkingError(String fail_message) { +// fail("Test Failed: " + fail_message); +// latch.countDown(); +// } +// }); // Not real major List test_list_1 = new ArrayList(); @@ -151,14 +147,14 @@ public void onNetworkingError(String fail_message) { test_list_3.add(9, ""); test_list_3.add(10, "2117"); test_list_3.add(11, "1aaaadsfhsfd"); - test_list_3.add(12, ""); - test_list_3.add(13, ""); - // "Bad request" - apiCaller.simpleSearch(test_list_1); - // "No " - apiCaller.advancedSearch(test_list_3); + + apiCaller.simpleSearch(test_list_1.get(0), test_list_1.get(1), test_list_1.get(2), test_list_1.get(3)); + + apiCaller.advancedSearch(test_list_3.get(0), test_list_3.get(1), test_list_3.get(2), test_list_3.get(3), + test_list_3.get(4), test_list_3.get(5), test_list_3.get(6), test_list_3.get(7), + test_list_3.get(8), test_list_3.get(9), test_list_3.get(10), test_list_3.get(11)); latch.await(); @@ -170,31 +166,32 @@ public void tooManyResultsTest() throws Exception { final CountDownLatch latch = new CountDownLatch(2); User user = new User("test1stu", "selfserv1"); - DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { - @Override - public void onSearchSuccess(List people) { - fail("Test Failed: search should not return successful results"); - latch.countDown(); - } - - @Override - public void authenticateUserCallSuccess(boolean success, Person person) { - fail("Test Failed: authenticate not called"); - latch.countDown(); - } - - @Override - public void onServerFailure(String fail_message) { - assertEquals("\"Search returned too many records. Please narrow your search and try again.\"", fail_message); - latch.countDown(); - } - - @Override - public void onNetworkingError(String fail_message) { - fail("Test Failed: " + fail_message); - latch.countDown(); - } - }); + SearchCaller apiCaller = new DBAPICaller((DbSearchCallback) user); +// DBAPICaller apiCaller = new DBAPICaller(user, new APICallerInterface() { +// @Override +// public void onSearchSuccess(List people) { +// fail("Test Failed: search should not return successful results"); +// latch.countDown(); +// } +// +// @Override +// public void authenticateUserCallSuccess(boolean success, Person person) { +// fail("Test Failed: authenticate not called"); +// latch.countDown(); +// } +// +// @Override +// public void onServerFailure(String fail_message) { +// assertEquals("\"Search returned too many records. Please narrow your search and try again.\"", fail_message); +// latch.countDown(); +// } +// +// @Override +// public void onNetworkingError(String fail_message) { +// fail("Test Failed: " + fail_message); +// latch.countDown(); +// } +// }); // will return too many results List test_list_4 = new ArrayList(); @@ -214,8 +211,11 @@ public void onNetworkingError(String fail_message) { test_list_4.add(13, ""); // "Search returned too many records. Please narrow your search and try again." - apiCaller.simpleSearch(test_list_4); - apiCaller.advancedSearch(test_list_4); + apiCaller.simpleSearch(test_list_4.get(0), test_list_4.get(1), test_list_4.get(2), test_list_4.get(3)); + + apiCaller.advancedSearch(test_list_4.get(0), test_list_4.get(1), test_list_4.get(2), test_list_4.get(3), + test_list_4.get(4), test_list_4.get(5), test_list_4.get(6), test_list_4.get(7), + test_list_4.get(8), test_list_4.get(9), test_list_4.get(10), test_list_4.get(11)); latch.await(); } diff --git a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/ScraperTest.java b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/ScraperTest.java index e699cea..5941b2b 100644 --- a/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/ScraperTest.java +++ b/app/src/androidTest/java/edu/grinnell/appdev/grinnelldirectory/ScraperTest.java @@ -23,7 +23,6 @@ @RunWith(AndroidJUnit4.class) public class ScraperTest { - @Test public void testAuthentication() throws Exception { // TODO: 2/25/17 Implement! diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBAPICaller.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBAPICaller.java index 227f603..86b29b1 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBAPICaller.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBAPICaller.java @@ -1,10 +1,11 @@ package edu.grinnell.appdev.grinnelldirectory; +import java.util.List; + import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchAPI; import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; import edu.grinnell.appdev.grinnelldirectory.models.Person; -import java.util.List; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -49,6 +50,7 @@ public void simpleSearch(String lastName, String firstName, String major, String ); } + @Override public void advancedSearch(String lastName, String firstName, String userName, String campusPhone, String campusAddress, String homeAddress, String classYear, String facStaffOffice, String major, String concentration, String sgaPosition, diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBApplication.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBApplication.java index 14114e9..dac5f85 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBApplication.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/DBApplication.java @@ -4,6 +4,9 @@ import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.isEncryptionKeySet; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.setAppEncryptionKey; + public class DBApplication extends Application { @Override @@ -11,8 +14,8 @@ public void onCreate() { super.onCreate(); Fabric.with(this, new Crashlytics()); - if (!EncryptionUtils.isEncryptionKeySet(this)) { - EncryptionUtils.setAppEncryptionKey(this, "" + System.currentTimeMillis()); + if (!isEncryptionKeySet(this)) { + setAppEncryptionKey(this, "" + System.currentTimeMillis()); } } } diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LocalJSON.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LocalJSON.java new file mode 100644 index 0000000..74097f6 --- /dev/null +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LocalJSON.java @@ -0,0 +1,155 @@ +package edu.grinnell.appdev.grinnelldirectory.activities; + +import android.support.v7.app.AppCompatActivity; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; + +public class LocalJSON { + + private AppCompatActivity activity; + + public LocalJSON(AppCompatActivity tempActivity){ + activity = tempActivity; + } + + public String loadJSONFromAsset(){ + String json = null; + try { + InputStream is = activity.getAssets().open("dummyData.json"); + int size = is.available(); + byte[] buffer = new byte[size]; + is.read(buffer); + is.close(); + json = new String(buffer, "UTF-8"); + } catch (IOException ex) { + ex.printStackTrace(); + return null; + } + return json; + } + + public void something(){ + try { + JSONObject obj = new JSONObject(loadJSONFromAsset()); + JSONArray m_jArry = obj.getJSONArray("persons"); + ArrayList> formList = new ArrayList>(); + ArrayList m_li; + + for (int i = 0; i < m_jArry.length(); i++) { + JSONObject jo_inside = m_jArry.getJSONObject(i); + //Log.d("Details-->", jo_inside.getString("formule")); + String firstName_value = jo_inside.getString("firstName"); + String lastName_value = jo_inside.getString("lastName"); + String userName_value = jo_inside.getString("userName"); + String classYear_value = jo_inside.getString("classYear"); + String reunionYear_value = jo_inside.getString("reunionYear"); + String box_value = jo_inside.getString("box"); + String email_value = jo_inside.getString("email"); + String major_value = jo_inside.getString("major"); + String minor_value = jo_inside.getString("minor"); + String address_value = jo_inside.getString("address"); + String address1_value = jo_inside.getString("address1"); + String address2_value = jo_inside.getString("address2"); + String address3_value = jo_inside.getString("address3"); + String address4_value = jo_inside.getString("address4"); + String phone_value = jo_inside.getString("phone"); + String homePhone_value = jo_inside.getString("homePhone"); + String city_value = jo_inside.getString("city"); + String state_value = jo_inside.getString("state"); + String zip_value = jo_inside.getString("zip"); + String country_value = jo_inside.getString("country"); + String bldg_value = jo_inside.getString("bldg"); + String room_value = jo_inside.getString("room"); + String spouse_value = jo_inside.getString("spouse"); + String alienStatus_value = jo_inside.getString("alienStatus"); + String hiatus_value = jo_inside.getString("hiatus"); + String imgPath_value = jo_inside.getString("imgPath"); + String office_phone_value = jo_inside.getString("office_phone"); + String office_email_value = jo_inside.getString("office_email"); + String office_addr_value = jo_inside.getString("office_addr"); + String office_box_value = jo_inside.getString("office_box"); + String type_value = jo_inside.getString("type"); + String page_order_value = jo_inside.getString("page_order"); + String crs_ID_value = jo_inside.getString("crs_ID"); + String position_name_value = jo_inside.getString("position_name"); + String office_hours_1_value = jo_inside.getString("office_hours_1"); + String office_hours_2_value = jo_inside.getString("office_hours_2"); + String office_hours_3_value = jo_inside.getString("office_hours_3"); + String office_hours_4_value = jo_inside.getString("office_hours_4"); + String personType_value = jo_inside.getString("personType"); + String deptMajorClass_value = jo_inside.getString("deptMajorClass"); + String title_value = jo_inside.getString("title"); + String title2_value = jo_inside.getString("title2"); + String title3_value = jo_inside.getString("title3"); + String title4_value = jo_inside.getString("title4"); + String title5_value = jo_inside.getString("title5"); + String title6_value = jo_inside.getString("title6"); + String title7_value = jo_inside.getString("title7"); + String title8_value = jo_inside.getString("title8");; + + //Add your values in your `ArrayList` as below: + m_li = new ArrayList(); + m_li.add(firstName_value); + m_li.add(lastName_value); + m_li.add(userName_value); + m_li.add(classYear_value); + m_li.add(reunionYear_value); + m_li.add(box_value); + m_li.add(email_value); + m_li.add(major_value); + m_li.add(minor_value); + m_li.add(address_value); + m_li.add(address1_value); + m_li.add(address2_value); + m_li.add(address3_value); + m_li.add(address4_value); + m_li.add(phone_value); + m_li.add(homePhone_value); + m_li.add(city_value); + m_li.add(state_value); + m_li.add(zip_value); + m_li.add(country_value); + m_li.add(bldg_value); + m_li.add(room_value); + m_li.add(spouse_value); + m_li.add(alienStatus_value); + m_li.add(hiatus_value); + m_li.add(imgPath_value); + m_li.add(office_addr_value); + m_li.add(office_box_value); + m_li.add(office_email_value); + m_li.add(office_phone_value); + m_li.add(type_value); + m_li.add(page_order_value); + m_li.add(crs_ID_value); + m_li.add(position_name_value); + m_li.add(office_hours_1_value); + m_li.add(office_hours_2_value); + m_li.add(office_hours_3_value); + m_li.add(office_hours_4_value); + m_li.add(personType_value); + m_li.add(deptMajorClass_value); + m_li.add(title_value); + m_li.add(title2_value); + m_li.add(title3_value); + m_li.add(title4_value); + m_li.add(title5_value); + m_li.add(title6_value); + m_li.add(title7_value); + m_li.add(title8_value); + + formList.add(m_li); + } + } + catch (JSONException e) { + e.printStackTrace(); + } + } + +} diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LoginActivity.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LoginActivity.java index d2d85a0..669156c 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LoginActivity.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/LoginActivity.java @@ -16,17 +16,17 @@ import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; -import edu.grinnell.appdev.grinnelldirectory.DBAPICaller; import edu.grinnell.appdev.grinnelldirectory.R; -import edu.grinnell.appdev.grinnelldirectory.interfaces.APICallerInterface; import edu.grinnell.appdev.grinnelldirectory.models.Person; import edu.grinnell.appdev.grinnelldirectory.models.User; +//import edu.grinnell.appdev.grinnelldirectory.interfaces.APICallerInterface; + /** * LoginActivity prompts the user to sign in. */ -public class LoginActivity extends AppCompatActivity implements APICallerInterface { +public class LoginActivity extends AppCompatActivity { @BindView(R.id.username) EditText mUsernameEditText; @BindView(R.id.password) @@ -82,7 +82,6 @@ void signInClicked(View view) { login(user); } - @Override public void onSearchSuccess(List people) { stopProgressDialog(); } @@ -96,7 +95,7 @@ public void onSearchSuccess(List people) { @BindString(R.string.authentication_failure) String authenticationFailure; - @Override + public void authenticateUserCallSuccess(boolean success, Person person) { stopProgressDialog(); if (success) { @@ -125,7 +124,7 @@ public void authenticateUserCallSuccess(boolean success, Person person) { @BindString(R.string.server_failure) String serverFailure; - @Override + public void onServerFailure(String fail_message) { stopProgressDialog(); showAlert(serverFailure + fail_message); @@ -139,7 +138,7 @@ public void onServerFailure(String fail_message) { @BindString(R.string.networking_error) String networkingError; - @Override + public void onNetworkingError(String fail_message) { stopProgressDialog(); showAlert(networkingError + fail_message); diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/SearchPagerActivity.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/SearchPagerActivity.java index b0d18c1..d280d63 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/SearchPagerActivity.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/activities/SearchPagerActivity.java @@ -1,39 +1,40 @@ package edu.grinnell.appdev.grinnelldirectory.activities; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; - import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; -import edu.grinnell.appdev.grinnelldirectory.DBAPICaller; -import edu.grinnell.appdev.grinnelldirectory.interfaces.APICallerInterface; -import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; -import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; -import edu.grinnell.appdev.grinnelldirectory.models.Person; import java.io.Serializable; +import java.security.GeneralSecurityException; +import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; +import edu.grinnell.appdev.grinnelldirectory.DBAPICaller; import edu.grinnell.appdev.grinnelldirectory.R; import edu.grinnell.appdev.grinnelldirectory.adapters.SearchPagerAdapter; +import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; +import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchFragmentInterface; +import edu.grinnell.appdev.grinnelldirectory.models.Person; import edu.grinnell.appdev.grinnelldirectory.models.User; -import java.security.GeneralSecurityException; -import java.util.ArrayList; -import java.util.List; import okhttp3.ResponseBody; +//import edu.grinnell.appdev.grinnelldirectory.interfaces.APICallerInterface; + /** * Parent activity of the simple and advanced search fragments */ @@ -64,6 +65,7 @@ public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_search_pager); ButterKnife.bind(this); + try { mUser = User.getUser(this); } catch (GeneralSecurityException e) { @@ -174,16 +176,38 @@ private void logoutAndRedirect() { } @Override public void onServerError(int code, ResponseBody error) { - mConnectionProgress.setVisibility(View.INVISIBLE); - mErrorMessage.setVisibility(View.VISIBLE); - mRetryButton.setVisibility(View.VISIBLE); - mErrorMessage.setText(R.string.server_failure); +// mConnectionProgress.setVisibility(View.INVISIBLE); +// mErrorMessage.setVisibility(View.VISIBLE); +// mRetryButton.setVisibility(View.VISIBLE); +// mErrorMessage.setText(R.string.server_failure); + new AlertDialog.Builder(this) + .setTitle("Server Error") + .setMessage("Please Try Again Later") + + .setPositiveButton("Okay", null) + + //.setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } @Override public void onNetworkError(String errorMessage) { - mConnectionProgress.setVisibility(View.INVISIBLE); - mErrorMessage.setVisibility(View.VISIBLE); - mRetryButton.setVisibility(View.VISIBLE); - mErrorMessage.setText(R.string.no_connection); + //mConnectionProgress.setVisibility(View.INVISIBLE); + //mErrorMessage.setVisibility(View.VISIBLE); + //mRetryButton.setVisibility(View.VISIBLE); + //mErrorMessage.setText(R.string.no_connection); + new AlertDialog.Builder(this) + .setTitle("Network Error") + .setMessage("Please connect to GrinnellCollege Wifi") + + .setPositiveButton("Settings", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS)); + } + }) + + .setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } } diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/AdvancedSearchFragment.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/AdvancedSearchFragment.java index d9c255f..b7f0c59 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/AdvancedSearchFragment.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/AdvancedSearchFragment.java @@ -13,8 +13,6 @@ import android.widget.Spinner; import android.widget.TextView; -import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; -import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; @@ -27,6 +25,7 @@ import edu.grinnell.appdev.grinnelldirectory.DBAPICaller; import edu.grinnell.appdev.grinnelldirectory.R; import edu.grinnell.appdev.grinnelldirectory.activities.SearchResultsActivity; +import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchFragmentInterface; import edu.grinnell.appdev.grinnelldirectory.models.Person; @@ -212,16 +211,34 @@ private void stopProgressDialog() { @Override public void onServerError(int code, ResponseBody error) { stopProgressDialog(); - try { - String errorMessage = error.string(); - showAlert(serverFailure, errorMessage); - } catch (IOException e) { - showAlert(serverFailure, String.valueOf(code)); - } +// try { +// String errorMessage = error.string(); +// showAlert(serverFailure, errorMessage); +// } catch (IOException e) { +// showAlert(serverFailure, String.valueOf(code)); +// } + new AlertDialog.Builder(AdvancedSearchFragment.this.getContext()) + .setTitle("Server Error") + .setMessage("Please Try Again Later") + + .setPositiveButton("Okay", null) + + //.setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } @Override public void onNetworkError(String errorMessage) { stopProgressDialog(); - showAlert(networkingError, errorMessage); + //showAlert(networkingError, errorMessage); + new AlertDialog.Builder(AdvancedSearchFragment.this.getContext()) + .setTitle("Server Error") + .setMessage("Please Try Again Later") + + .setPositiveButton("Okay", null) + + //.setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } } diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/SimpleSearchFragment.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/SimpleSearchFragment.java index 9aed1c9..6307034 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/SimpleSearchFragment.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/fragments/SimpleSearchFragment.java @@ -12,8 +12,6 @@ import android.widget.EditText; import android.widget.TextView; -import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; -import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; @@ -24,6 +22,7 @@ import edu.grinnell.appdev.grinnelldirectory.DBAPICaller; import edu.grinnell.appdev.grinnelldirectory.R; import edu.grinnell.appdev.grinnelldirectory.activities.SearchResultsActivity; +import edu.grinnell.appdev.grinnelldirectory.interfaces.DbSearchCallback; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchCaller; import edu.grinnell.appdev.grinnelldirectory.interfaces.SearchFragmentInterface; import edu.grinnell.appdev.grinnelldirectory.models.Person; @@ -139,18 +138,36 @@ private void stopProgressDialog() { String serverFailure; @Override public void onServerError(int code, ResponseBody error) { stopProgressDialog(); - try { - String errorMessage = error.string(); - showAlert(serverFailure, errorMessage); - } catch (IOException e) { - showAlert(serverFailure, String.valueOf(code)); - } +// try { +//// String errorMessage = error.string(); +//// showAlert(serverFailure, errorMessage); +//// } catch (IOException e) { +//// showAlert(serverFailure, String.valueOf(code)); +//// } + new AlertDialog.Builder(SimpleSearchFragment.this.getContext()) + .setTitle("Server Error") + .setMessage("Please Try Again Later") + + .setPositiveButton("Okay", null) + + //.setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } @BindString(R.string.networking_error) String networkingError; @Override public void onNetworkError(String errorMessage) { stopProgressDialog(); - showAlert(networkingError, errorMessage); + //showAlert(networkingError, errorMessage); + new AlertDialog.Builder(SimpleSearchFragment.this.getContext()) + .setTitle("Server Error") + .setMessage("Please Try Again Later") + + .setPositiveButton("Okay", null) + + //.setNegativeButton("Later", null) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); } } \ No newline at end of file diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/interfaces/APICallerInterface.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/interfaces/APICallerInterface.java index 28976ec..c3d5174 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/interfaces/APICallerInterface.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/interfaces/APICallerInterface.java @@ -13,7 +13,7 @@ public interface APICallerInterface { void onSearchSuccess(List people); - void authenticateUserCallSuccess(boolean success, Person person); + //void authenticateUserCallSuccess(boolean success, Person person); void onServerFailure(String fail_message); diff --git a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/models/User.java b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/models/User.java index e9a731e..fc79959 100644 --- a/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/models/User.java +++ b/app/src/main/java/edu/grinnell/appdev/grinnelldirectory/models/User.java @@ -10,7 +10,8 @@ import java.security.GeneralSecurityException; -import edu.grinnell.appdev.grinnelldirectory.EncryptionUtils; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.decrypt; +import static edu.grinnell.appdev.grinnelldirectory.EncryptionUtils.encrypt; /** * The User class represents the user of the app. @@ -64,8 +65,8 @@ public String getPassword() { */ public static User getUser(Context context) throws GeneralSecurityException { SharedPreferences preferences = getSharedPreferences(context); - String username = EncryptionUtils.decrypt(context, preferences.getString(USERNAME, "")); - String password = EncryptionUtils.decrypt(context, preferences.getString(PASSWORD, "")); + String username = decrypt(context, preferences.getString(USERNAME, "")); + String password = decrypt(context, preferences.getString(PASSWORD, "")); return new User(username, password); } @@ -95,8 +96,8 @@ public static void saveCredentialsEncrypt(Context context, String username, Stri if (username == null || password == null) { return; } - String encryptedUsername = EncryptionUtils.encrypt(context, username); - String encryptedPassword = EncryptionUtils.encrypt(context, password); + String encryptedUsername = encrypt(context, username); + String encryptedPassword = encrypt(context, password); SharedPreferences preferences = getSharedPreferences(context); Editor editor = preferences.edit(); editor.putString(USERNAME, encryptedUsername);