1
0
mirror of https://github.com/wulkanowy/wulkanowy.git synced 2024-09-20 01:39:09 -05:00

Replace all county/counties occurrences with symbol/symbols (#19)

This commit is contained in:
Mikołaj Pich 2017-08-31 22:24:44 +02:00 committed by RicomenPL
parent 15260b58f3
commit 935b79e8cf
15 changed files with 63 additions and 57 deletions

View File

@ -95,7 +95,7 @@ public class GradesFragment extends Fragment {
Account account = accountsDatabase.getAccount(userId); Account account = accountsDatabase.getAccount(userId);
accountsDatabase.close(); accountsDatabase.close();
StudentAndParent snp = new StudentAndParent(cookies, account.getCounty()); StudentAndParent snp = new StudentAndParent(cookies, account.getSymbol());
SubjectsList subjectsList = new SubjectsList(snp); SubjectsList subjectsList = new SubjectsList(snp);
SubjectsDatabase subjectsDatabase = new SubjectsDatabase(mContext); SubjectsDatabase subjectsDatabase = new SubjectsDatabase(mContext);

View File

@ -93,7 +93,7 @@ public class LoginTask extends AsyncTask<String, Integer, Integer> {
.setName(firstAndLastName) .setName(firstAndLastName)
.setEmail(credentials[0]) .setEmail(credentials[0])
.setPassword(safety.encrypt(credentials[0], credentials[1])) .setPassword(safety.encrypt(credentials[0], credentials[1]))
.setCounty(credentials[2]); .setSymbol(credentials[2]);
AccountsDatabase accountsDatabase = new AccountsDatabase(activity); AccountsDatabase accountsDatabase = new AccountsDatabase(activity);

View File

@ -44,9 +44,9 @@ public class MainActivity extends AppCompatActivity {
private void autoComplete() { private void autoComplete() {
// Get a reference to the AutoCompleteTextView in the layout // Get a reference to the AutoCompleteTextView in the layout
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.countyText); AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.symbolText);
// Get the string array // Get the string array
String[] countries = getResources().getStringArray(R.array.counties); String[] countries = getResources().getStringArray(R.array.symbols);
// Create the adapter and set it to the AutoCompleteTextView // Create the adapter and set it to the AutoCompleteTextView
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,
countries); countries);
@ -56,22 +56,22 @@ public class MainActivity extends AppCompatActivity {
public void login(View a) { public void login(View a) {
String password = ((EditText) findViewById(R.id.passwordText)).getText().toString(); String password = ((EditText) findViewById(R.id.passwordText)).getText().toString();
String email = ((EditText) findViewById(R.id.emailText)).getText().toString(); String email = ((EditText) findViewById(R.id.emailText)).getText().toString();
String county = ((EditText) findViewById(R.id.countyText)).getText().toString(); String symbol = ((EditText) findViewById(R.id.symbolText)).getText().toString();
String[] keys = this.getResources().getStringArray(R.array.counties); String[] keys = this.getResources().getStringArray(R.array.symbols);
String[] values = this.getResources().getStringArray(R.array.counties_values); String[] values = this.getResources().getStringArray(R.array.symbols_values);
LinkedHashMap<String, String> map = new LinkedHashMap<>(); LinkedHashMap<String, String> map = new LinkedHashMap<>();
for (int i = 0; i < Math.min(keys.length, values.length); ++i) { for (int i = 0; i < Math.min(keys.length, values.length); ++i) {
map.put(keys[i], values[i]); map.put(keys[i], values[i]);
} }
if (map.containsKey(county)) { if (map.containsKey(symbol)) {
county = map.get(county); symbol = map.get(symbol);
} }
if (!email.isEmpty() && !password.isEmpty() && !county.isEmpty()) { if (!email.isEmpty() && !password.isEmpty() && !symbol.isEmpty()) {
new LoginTask(this, true).execute(email, password, county); new LoginTask(this, true).execute(email, password, symbol);
} else { } else {
Toast.makeText(this, R.string.data_text, Toast.LENGTH_SHORT).show(); Toast.makeText(this, R.string.data_text, Toast.LENGTH_SHORT).show();
} }

View File

@ -88,7 +88,7 @@ public class LoadingTask extends AsyncTask<Void, Void, Void> {
new LoginTask(activity, false).execute( new LoginTask(activity, false).execute(
account.getEmail(), account.getEmail(),
safety.decrypt(account.getEmail(), account.getPassword()), safety.decrypt(account.getEmail(), account.getPassword()),
account.getCounty() account.getSymbol()
); );
return true; return true;

View File

@ -14,22 +14,22 @@ import io.github.wulkanowy.api.login.LoginErrorException;
public class StudentAndParent extends Vulcan { public class StudentAndParent extends Vulcan {
private String startPageUrl = "https://uonetplus.vulcan.net.pl/{locationID}/Start.mvc/Index"; private String startPageUrl = "https://uonetplus.vulcan.net.pl/{symbol}/Start.mvc/Index";
private String baseUrl = "https://uonetplus-opiekun.vulcan.net.pl/{locationID}/{ID}/"; private String baseUrl = "https://uonetplus-opiekun.vulcan.net.pl/{symbol}/{ID}/";
private String gradesPageUrl = baseUrl + "Oceny/Wszystkie"; private String gradesPageUrl = baseUrl + "Oceny/Wszystkie";
private String locationID = ""; private String symbol = "";
private String id = ""; private String id = "";
public StudentAndParent(Cookies cookies, String locID) throws IOException, LoginErrorException { public StudentAndParent(Cookies cookies, String locID) throws IOException, LoginErrorException {
this.cookies = cookies; this.cookies = cookies;
this.locationID = locID; this.symbol = locID;
// get link to uonetplus-opiekun.vulcan.net.pl module // get link to uonetplus-opiekun.vulcan.net.pl module
Document startPage = getPageByUrl(startPageUrl.replace("{locationID}", locationID)); Document startPage = getPageByUrl(startPageUrl.replace("{symbol}", symbol));
Element studentTileLink = startPage.select(".panel.linkownia.pracownik.klient > a").first(); Element studentTileLink = startPage.select(".panel.linkownia.pracownik.klient > a").first();
String uonetPlusOpiekunUrl = studentTileLink.attr("href"); String uonetPlusOpiekunUrl = studentTileLink.attr("href");
@ -43,19 +43,19 @@ public class StudentAndParent extends Vulcan {
this.id = getCalculatedID(uonetPlusOpiekunUrl); this.id = getCalculatedID(uonetPlusOpiekunUrl);
this.baseUrl = baseUrl this.baseUrl = baseUrl
.replace("{locationID}", getLocationID()) .replace("{symbol}", getSymbol())
.replace("{ID}", getID()); .replace("{ID}", getId());
} }
public String getGradesPageUrl() { public String getGradesPageUrl() {
return gradesPageUrl; return gradesPageUrl;
} }
public String getLocationID() { public String getSymbol() {
return locationID; return symbol;
} }
public String getID() { public String getId() {
return id; return id;
} }

View File

@ -11,26 +11,26 @@ import io.github.wulkanowy.api.Vulcan;
public class Login extends Vulcan { public class Login extends Vulcan {
private String loginPageUrl = "https://cufs.vulcan.net.pl/{locationID}/Account/LogOn"; private String loginPageUrl = "https://cufs.vulcan.net.pl/{symbol}/Account/LogOn";
private String certificatePageUrl = "https://cufs.vulcan.net.pl/{locationID}" private String certificatePageUrl = "https://cufs.vulcan.net.pl/{symbol}"
+ "/FS/LS?wa=wsignin1.0&wtrealm=https://uonetplus.vulcan.net.pl/{locationID}" + "/FS/LS?wa=wsignin1.0&wtrealm=https://uonetplus.vulcan.net.pl/{symbol}"
+ "/LoginEndpoint.aspx&wctx=https://uonetplus.vulcan.net.pl/{locationID}" + "/LoginEndpoint.aspx&wctx=https://uonetplus.vulcan.net.pl/{symbol}"
+ "/LoginEndpoint.aspx"; + "/LoginEndpoint.aspx";
private String loginEndpointPageUrl = private String loginEndpointPageUrl =
"https://uonetplus.vulcan.net.pl/{locationID}/LoginEndpoint.aspx"; "https://uonetplus.vulcan.net.pl/{symbol}/LoginEndpoint.aspx";
public Login(Cookies cookies) { public Login(Cookies cookies) {
this.cookies = cookies; this.cookies = cookies;
} }
public boolean login(String email, String password, String county) public boolean login(String email, String password, String symbol)
throws BadCredentialsException, LoginErrorException, AccountPermissionException { throws BadCredentialsException, LoginErrorException, AccountPermissionException {
try { try {
sendCredentials(email, password, county); sendCredentials(email, password, symbol);
String[] certificate = getCertificateData(county); String[] certificate = getCertificateData(symbol);
sendCertificate(certificate[0], certificate[1], county); sendCertificate(certificate[0], certificate[1], symbol);
} catch (IOException e) { } catch (IOException e) {
throw new LoginErrorException(); throw new LoginErrorException();
} }
@ -38,9 +38,9 @@ public class Login extends Vulcan {
return true; return true;
} }
private void sendCredentials(String email, String password, String county) private void sendCredentials(String email, String password, String symbol)
throws IOException, BadCredentialsException { throws IOException, BadCredentialsException {
loginPageUrl = loginPageUrl.replace("{locationID}", county); loginPageUrl = loginPageUrl.replace("{symbol}", symbol);
Connection.Response response = Jsoup.connect(loginPageUrl) Connection.Response response = Jsoup.connect(loginPageUrl)
.data("LoginName", email) .data("LoginName", email)
@ -56,8 +56,8 @@ public class Login extends Vulcan {
} }
} }
private String[] getCertificateData(String county) throws IOException { private String[] getCertificateData(String symbol) throws IOException {
certificatePageUrl = certificatePageUrl.replace("{locationID}", county); certificatePageUrl = certificatePageUrl.replace("{symbol}", symbol);
Document certificatePage = getPageByUrl(certificatePageUrl); Document certificatePage = getPageByUrl(certificatePageUrl);
@ -67,9 +67,9 @@ public class Login extends Vulcan {
}; };
} }
private void sendCertificate(String protocolVersion, String certificate, String county) private void sendCertificate(String protocolVersion, String certificate, String symbol)
throws IOException, LoginErrorException, AccountPermissionException { throws IOException, LoginErrorException, AccountPermissionException {
loginEndpointPageUrl = loginEndpointPageUrl.replace("{locationID}", county); loginEndpointPageUrl = loginEndpointPageUrl.replace("{symbol}", symbol);
Connection.Response response = Jsoup.connect(loginEndpointPageUrl) Connection.Response response = Jsoup.connect(loginEndpointPageUrl)
.data("wa", protocolVersion) .data("wa", protocolVersion)

View File

@ -10,7 +10,7 @@ public class DatabaseAdapter {
private final String DATABASE_NAME = "accountdatabase.db"; private final String DATABASE_NAME = "accountdatabase.db";
private final int DATABASE_VERSION = 3; private final int DATABASE_VERSION = 4;
public static SQLiteDatabase database; public static SQLiteDatabase database;

View File

@ -15,7 +15,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
"name TEXT, " + "name TEXT, " +
"email TEXT," + "email TEXT," +
"password TEXT, " + "password TEXT, " +
"county TEXT );"; "symbol TEXT );";
public final String SUBJECT_TABLE = "CREATE TABLE IF NOT EXISTS subjects( " + public final String SUBJECT_TABLE = "CREATE TABLE IF NOT EXISTS subjects( " +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " +

View File

@ -11,7 +11,7 @@ public class Account {
private String password; private String password;
private String county; private String symbol;
public int getId() { public int getId() {
return id; return id;
@ -49,12 +49,12 @@ public class Account {
return this; return this;
} }
public String getCounty() { public String getSymbol() {
return county; return symbol;
} }
public Account setCounty(String county) { public Account setSymbol(String symbol) {
this.county = county; this.symbol = symbol;
return this; return this;
} }
} }

View File

@ -15,7 +15,7 @@ public class AccountsDatabase extends DatabaseAdapter {
private String name = "name"; private String name = "name";
private String email = "email"; private String email = "email";
private String password = "password"; private String password = "password";
private String county = "county"; private String symbol = "symbol";
private String idText = "id"; private String idText = "id";
private String accounts = "accounts"; private String accounts = "accounts";
@ -29,7 +29,7 @@ public class AccountsDatabase extends DatabaseAdapter {
newAccount.put(name, account.getName()); newAccount.put(name, account.getName());
newAccount.put(email, account.getEmail()); newAccount.put(email, account.getEmail());
newAccount.put(password, account.getPassword()); newAccount.put(password, account.getPassword());
newAccount.put(county, account.getCounty()); newAccount.put(symbol, account.getSymbol());
if (!database.isReadOnly()) { if (!database.isReadOnly()) {
long newId = database.insertOrThrow(accounts, null, newAccount); long newId = database.insertOrThrow(accounts, null, newAccount);
@ -45,7 +45,7 @@ public class AccountsDatabase extends DatabaseAdapter {
Account account = new Account(); Account account = new Account();
String[] columns = {idText, name, email, password, county}; String[] columns = {idText, name, email, password, symbol};
String args[] = {id + ""}; String args[] = {id + ""};
try { try {
@ -56,7 +56,7 @@ public class AccountsDatabase extends DatabaseAdapter {
account.setName(cursor.getString(1)); account.setName(cursor.getString(1));
account.setEmail(cursor.getString(2)); account.setEmail(cursor.getString(2));
account.setPassword(cursor.getString(3)); account.setPassword(cursor.getString(3));
account.setCounty(cursor.getString(4)); account.setSymbol(cursor.getString(4));
cursor.close(); cursor.close();
} }
} catch (SQLException e) { } catch (SQLException e) {

View File

@ -43,12 +43,12 @@
tools:ignore="UnusedAttribute" /> tools:ignore="UnusedAttribute" />
<AutoCompleteTextView <AutoCompleteTextView
android:id="@+id/countyText" android:id="@+id/symbolText"
android:layout_width="300dp" android:layout_width="300dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:hint="@string/county_hint_text" android:hint="@string/symbol_hint_text"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:inputType="text" /> android:inputType="text" />

View File

@ -4,7 +4,7 @@
<string name="pass_hint_text">Hasło</string> <string name="pass_hint_text">Hasło</string>
<string name="email_hint_text">E-mail</string> <string name="email_hint_text">E-mail</string>
<string name="login_button_text">Zaloguj</string> <string name="login_button_text">Zaloguj</string>
<string name="county_hint_text">Powiat</string> <string name="symbol_hint_text">Symbol</string>
<string name="warning_text">Aplikacja ta nie jest ukończona, więc mogą występować różnego rodzaju błędy lub dane funkcje nie bedą działać. Prosimy o cierpliwość i wyrozumiałość.</string> <string name="warning_text">Aplikacja ta nie jest ukończona, więc mogą występować różnego rodzaju błędy lub dane funkcje nie bedą działać. Prosimy o cierpliwość i wyrozumiałość.</string>
<string name="warning_label_text">Ostrzeżenie</string> <string name="warning_label_text">Ostrzeżenie</string>
<string name="data_text">Brak danych logowania</string> <string name="data_text">Brak danych logowania</string>

View File

@ -4,13 +4,13 @@
<string name="pass_hint_text">Password</string> <string name="pass_hint_text">Password</string>
<string name="email_hint_text">E-mail</string> <string name="email_hint_text">E-mail</string>
<string name="login_button_text">Log in</string> <string name="login_button_text">Log in</string>
<string name="county_hint_text">County</string> <string name="symbol_hint_text">Symbol</string>
<string name="warning_text">This application is not complete, so there may be a variety of errors or features that will not work. Please be patient and understanding.</string> <string name="warning_text">This application is not complete, so there may be a variety of errors or features that will not work. Please be patient and understanding.</string>
<string name="warning_label_text">Warning</string> <string name="warning_label_text">Warning</string>
<string name="data_text">No login data</string> <string name="data_text">No login data</string>
<string name="login_accepted_text">Login is successful</string> <string name="login_accepted_text">Login is successful</string>
<string name="login_bad_credentials_text">Bad e-mail or password</string> <string name="login_bad_credentials_text">Bad e-mail or password</string>
<string name="login_bad_account_permission_text">No permission to open log. Check entered county name</string> <string name="login_bad_account_permission_text">No permission to open log. Check entered symbol</string>
<string name="login_denied_text">Login is failed</string> <string name="login_denied_text">Login is failed</string>
<string name="please_wait_text">Please wait…</string> <string name="please_wait_text">Please wait…</string>
<string name="activity_dashboard_text">Dashboard Activity</string> <string name="activity_dashboard_text">Dashboard Activity</string>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string-array name="counties"> <string-array name="symbols">
<item>Andrychów</item> <item>Andrychów</item>
<item>Augustów</item> <item>Augustów</item>
<item>Baranów Sandomierski</item> <item>Baranów Sandomierski</item>
@ -18,6 +18,7 @@
<item>Błonie</item> <item>Błonie</item>
<item>Bochnia</item> <item>Bochnia</item>
<item>Bogatynia</item> <item>Bogatynia</item>
<item>Boguchwała</item>
<item>Bolesławiec</item> <item>Bolesławiec</item>
<item>Braniewo</item> <item>Braniewo</item>
<item>Brodnica</item> <item>Brodnica</item>
@ -297,6 +298,7 @@
<item>Gmina Łużna</item> <item>Gmina Łużna</item>
<item>Gmina Łysomice</item> <item>Gmina Łysomice</item>
<item>Gmina Maków Podhalański</item> <item>Gmina Maków Podhalański</item>
<item>Gmina Malbork</item>
<item>Gmina Małdyty</item> <item>Gmina Małdyty</item>
<item>Gmina Małkinia Górna</item> <item>Gmina Małkinia Górna</item>
<item>Gmina Marcinowice</item> <item>Gmina Marcinowice</item>
@ -368,6 +370,7 @@
<item>Gmina Parchowo</item> <item>Gmina Parchowo</item>
<item>Gmina Parczew</item> <item>Gmina Parczew</item>
<item>Gmina Pawłosiów</item> <item>Gmina Pawłosiów</item>
<item>Gmina Pawłowice</item>
<item>Gmina Pelplin</item> <item>Gmina Pelplin</item>
<item>Gmina Piaski</item> <item>Gmina Piaski</item>
<item>Gmina Piątnica</item> <item>Gmina Piątnica</item>
@ -1102,7 +1105,7 @@
<item>Żyrardów</item> <item>Żyrardów</item>
<item>Żywiec</item> <item>Żywiec</item>
</string-array> </string-array>
<string-array name="counties_values"> <string-array name="symbols_values">
<item>andrychow</item> <item>andrychow</item>
<item>augustow</item> <item>augustow</item>
<item>baranowsandomierski</item> <item>baranowsandomierski</item>
@ -1120,6 +1123,7 @@
<item>blonie</item> <item>blonie</item>
<item>bochnia</item> <item>bochnia</item>
<item>bogatynia</item> <item>bogatynia</item>
<item>boguchwala</item>
<item>boleslawiec</item> <item>boleslawiec</item>
<item>braniewo</item> <item>braniewo</item>
<item>brodnica</item> <item>brodnica</item>
@ -1399,6 +1403,7 @@
<item>gminaluzna</item> <item>gminaluzna</item>
<item>gminalysomice</item> <item>gminalysomice</item>
<item>gminamakowpodhalanski</item> <item>gminamakowpodhalanski</item>
<item>gminamalbork</item>
<item>gminamaldyty</item> <item>gminamaldyty</item>
<item>gminamalkiniagorna</item> <item>gminamalkiniagorna</item>
<item>gminamarcinowice</item> <item>gminamarcinowice</item>
@ -1470,6 +1475,7 @@
<item>gminaparchowo</item> <item>gminaparchowo</item>
<item>gminaparczew</item> <item>gminaparczew</item>
<item>gminapawlosiow</item> <item>gminapawlosiow</item>
<item>gminapawlowice</item>
<item>gminapelplin</item> <item>gminapelplin</item>
<item>gminapiaski</item> <item>gminapiaski</item>
<item>gminapiatnica</item> <item>gminapiatnica</item>

View File

@ -27,8 +27,8 @@ public class StudentAndParentTest {
Mockito.when(snp.getSnPPageDocument(Mockito.anyString())).thenReturn(gradesPageDocument); Mockito.when(snp.getSnPPageDocument(Mockito.anyString())).thenReturn(gradesPageDocument);
Mockito.when(snp.getCalculatedID(Mockito.anyString())).thenCallRealMethod(); Mockito.when(snp.getCalculatedID(Mockito.anyString())).thenCallRealMethod();
Mockito.when(snp.getLocationID()).thenReturn("symbol"); Mockito.when(snp.getSymbol()).thenReturn("symbol");
Mockito.when(snp.getID()).thenReturn("123456"); Mockito.when(snp.getId()).thenReturn("123456");
Mockito.when(snp.getSemesters()).thenCallRealMethod(); Mockito.when(snp.getSemesters()).thenCallRealMethod();
Mockito.when(snp.getGradesPageUrl()).thenReturn("http://wulkanowy.null"); Mockito.when(snp.getGradesPageUrl()).thenReturn("http://wulkanowy.null");
Mockito.when(snp.getSemesters(Mockito.any(Document.class))).thenCallRealMethod(); Mockito.when(snp.getSemesters(Mockito.any(Document.class))).thenCallRealMethod();