Work in progress
This commit is contained in:
		
							
								
								
									
										10
									
								
								.idea/deploymentTargetSelector.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.idea/deploymentTargetSelector.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="deploymentTargetSelector"> | ||||||
|  |     <selectionStates> | ||||||
|  |       <SelectionState runConfigName="app"> | ||||||
|  |         <option name="selectionMode" value="DROPDOWN" /> | ||||||
|  |       </SelectionState> | ||||||
|  |     </selectionStates> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
							
								
								
									
										8
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | <component name="InspectionProjectProfileManager"> | ||||||
|  |   <profile version="1.0"> | ||||||
|  |     <option name="myName" value="Project Default" /> | ||||||
|  |     <inspection_tool class="ExtractMethodRecommender" enabled="true" level="WARNING" enabled_by_default="true"> | ||||||
|  |       <option name="minLength" value="515" /> | ||||||
|  |     </inspection_tool> | ||||||
|  |   </profile> | ||||||
|  | </component> | ||||||
							
								
								
									
										10
									
								
								.idea/migrations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.idea/migrations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="ProjectMigrations"> | ||||||
|  |     <option name="MigrateToGradleLocalJavaHome"> | ||||||
|  |       <set> | ||||||
|  |         <option value="$PROJECT_DIR$" /> | ||||||
|  |       </set> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
							
								
								
									
										17
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="RunConfigurationProducerService"> | ||||||
|  |     <option name="ignoredProducers"> | ||||||
|  |       <set> | ||||||
|  |         <option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" /> | ||||||
|  |         <option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" /> | ||||||
|  |         <option value="com.intellij.execution.junit.PatternConfigurationProducer" /> | ||||||
|  |         <option value="com.intellij.execution.junit.TestInClassConfigurationProducer" /> | ||||||
|  |         <option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" /> | ||||||
|  |         <option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" /> | ||||||
|  |         <option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" /> | ||||||
|  |         <option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" /> | ||||||
|  |       </set> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
| @@ -10,7 +10,9 @@ import android.content.SharedPreferences; | |||||||
| import android.content.pm.PackageManager; | import android.content.pm.PackageManager; | ||||||
| import android.graphics.Bitmap; | import android.graphics.Bitmap; | ||||||
| import android.net.Uri; | import android.net.Uri; | ||||||
|  | import android.os.Build; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
|  | import android.os.NetworkOnMainThreadException; | ||||||
| import android.util.Base64; | import android.util.Base64; | ||||||
| import android.view.KeyEvent; | import android.view.KeyEvent; | ||||||
| import android.view.View; | import android.view.View; | ||||||
| @@ -32,7 +34,13 @@ import androidx.core.content.ContextCompat; | |||||||
| import com.journeyapps.barcodescanner.ScanContract; | import com.journeyapps.barcodescanner.ScanContract; | ||||||
| import com.journeyapps.barcodescanner.ScanOptions; | import com.journeyapps.barcodescanner.ScanOptions; | ||||||
|  |  | ||||||
|  | import java.io.BufferedInputStream; | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
|  | import java.io.InputStream; | ||||||
|  | import java.io.UnsupportedEncodingException; | ||||||
|  | import java.net.HttpURLConnection; | ||||||
|  | import java.net.URL; | ||||||
|  | import java.net.URLEncoder; | ||||||
| import java.nio.charset.StandardCharsets; | import java.nio.charset.StandardCharsets; | ||||||
| import java.security.InvalidAlgorithmParameterException; | import java.security.InvalidAlgorithmParameterException; | ||||||
| import java.security.InvalidKeyException; | import java.security.InvalidKeyException; | ||||||
| @@ -174,9 +182,9 @@ public class StartActivity extends AppCompatActivity { | |||||||
|                 LoadIndicator.setVisibility(View.GONE); |                 LoadIndicator.setVisibility(View.GONE); | ||||||
|                 myWebView.setVisibility(View.VISIBLE); |                 myWebView.setVisibility(View.VISIBLE); | ||||||
|  |  | ||||||
|                 view.loadUrl("javascript:(function() { document.getElementById('id_password_confirm').value = '" + wacht + "'; ;})()"); |                 //view.loadUrl("javascript:(function() { document.getElementById('id_password_confirm').value = '" + wacht + "'; ;})()"); | ||||||
|                 view.loadUrl("javascript:(function() { document.getElementById('id_localname_confirm').value = '" + name + "'; ;})()"); |                 //view.loadUrl("javascript:(function() { document.getElementById('id_localname_confirm').value = '" + name + "'; ;})()"); | ||||||
|                 view.loadUrl("javascript:(function() { if (window.location.href == 'https://" + server + "/login') { document.getElementsByName(\"login-confirm\")[0].submit();} ;})()"); |                 //view.loadUrl("javascript:(function() { if (window.location.href == 'https://" + server + "/login') { document.getElementsByName(\"login-confirm\")[0].submit();} ;})()"); | ||||||
|                 view.loadUrl("javascript:(function() { " + |                 view.loadUrl("javascript:(function() { " + | ||||||
|                         "if (document.querySelectorAll(\"[data-modal-open]\")[0]) {" + |                         "if (document.querySelectorAll(\"[data-modal-open]\")[0]) {" + | ||||||
|                             "let ISBN_Button = document.querySelectorAll(\"[data-modal-open]\")[0];" + |                             "let ISBN_Button = document.querySelectorAll(\"[data-modal-open]\")[0];" + | ||||||
| @@ -198,7 +206,46 @@ public class StartActivity extends AppCompatActivity { | |||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|         //Here, load the login page of the server. That actually does all that is needed. |         //Here, load the login page of the server. That actually does all that is needed. | ||||||
|         myWebView.loadUrl("https://" + server + "/login"); |         String geheimeToken = null; | ||||||
|  |         try { | ||||||
|  |             geheimeToken = getMiddleWareToken(server); | ||||||
|  |         } catch (IOException e) { | ||||||
|  |             throw new RuntimeException(e); | ||||||
|  |         } | ||||||
|  |         String gegevens = null; | ||||||
|  |         try { | ||||||
|  |             gegevens = "csrfmiddlewaretoken=" + URLEncoder.encode(geheimeToken, "UTF-8") + "&localname=" + URLEncoder.encode(name, "UTF-8") + "&password=" + URLEncoder.encode(passw, "UTF-8"); | ||||||
|  |         } catch (UnsupportedEncodingException e) { | ||||||
|  |             throw new RuntimeException(e); | ||||||
|  |         } | ||||||
|  |         myWebView.postUrl("https://" + server + "/login", gegevens.getBytes()); | ||||||
|  |     } | ||||||
|  |     public String getMiddleWareToken(String server) throws IOException { //Er gaat hier nog iets fout. Steeds een error ofzo. | ||||||
|  |         //Het idee is dat deze functie de loginpagina van de server laadt en dan de 'csrfmiddlewaretoken' uit het inlogformulier haalt, | ||||||
|  |         //Zodat dat dan gebruikt kan worden bij het inloggen. | ||||||
|  |         String token; | ||||||
|  |         InputStream ina; | ||||||
|  |         URL url = new URL("https://" + server + "/login"); | ||||||
|  |         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); | ||||||
|  |         try { | ||||||
|  |             ina = new BufferedInputStream(urlConnection.getInputStream()); | ||||||
|  |             byte[] pagina = null; | ||||||
|  |             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { | ||||||
|  |                 pagina = ina.readAllBytes(); | ||||||
|  |             } | ||||||
|  |             try { | ||||||
|  |                 ina.close(); | ||||||
|  |             } catch (IOException e) { | ||||||
|  |                 throw new RuntimeException(e); | ||||||
|  |             } | ||||||
|  |             String zooi = new String(pagina); | ||||||
|  |             String[] opgebroken = zooi.split("name=\"csrfmiddlewaretoken\" value="); | ||||||
|  |             String[] breukjes = opgebroken[1].split("\">"); | ||||||
|  |             token = breukjes[0]; | ||||||
|  |         } finally { | ||||||
|  |             urlConnection.disconnect(); | ||||||
|  |         } | ||||||
|  |         return token; | ||||||
|     } |     } | ||||||
|     private final ActivityResultLauncher<ScanOptions> barcodeLanceerder = registerForActivityResult(new ScanContract(), |     private final ActivityResultLauncher<ScanOptions> barcodeLanceerder = registerForActivityResult(new ScanContract(), | ||||||
|             result -> { |             result -> { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user