X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FViewSourceActivity.kt;h=1df0515230041e988a88faddb294f2be2e77e987;hp=173313f65da654b540f2d88af163bc59ba176aa3;hb=39fd3a6664fe15f9e050e6bb8c0ca0e125fd2f0f;hpb=6c2b8d9b616a5998c387f417096e754e52d54037 diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/ViewSourceActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/ViewSourceActivity.kt index 173313f6..1df05152 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/ViewSourceActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/ViewSourceActivity.kt @@ -66,6 +66,14 @@ class ViewSourceActivity: AppCompatActivity() { private lateinit var finalGrayColorSpan: ForegroundColorSpan private lateinit var redColorSpan: ForegroundColorSpan + // Declare the class views. + private lateinit var requestHeadersTitleTextView: TextView + private lateinit var requestHeadersTextView: TextView + private lateinit var responseMessageTitleTextView: TextView + private lateinit var responseMessageTextView: TextView + private lateinit var responseHeadersTitleTextView: TextView + private lateinit var responseBodyTitleTextView: TextView + override fun onCreate(savedInstanceState: Bundle?) { // Get a handle for the shared preferences. val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext) @@ -88,8 +96,8 @@ class ViewSourceActivity: AppCompatActivity() { val intent = intent // Get the information from the intent. - val currentUrl = intent.getStringExtra(CURRENT_URL) - val userAgent = intent.getStringExtra(USER_AGENT) + val currentUrl = intent.getStringExtra(CURRENT_URL)!! + val userAgent = intent.getStringExtra(USER_AGENT)!! // Set the content view. setContentView(R.layout.view_source_coordinatorlayout) @@ -111,12 +119,16 @@ class ViewSourceActivity: AppCompatActivity() { // Get handles for the views. val urlEditText = findViewById(R.id.url_edittext) - val requestHeadersTextView = findViewById(R.id.request_headers) - val responseMessageTextView = findViewById(R.id.response_message) - val responseHeadersTextView = findViewById(R.id.response_headers) - val responseBodyTextView = findViewById(R.id.response_body) val progressBar = findViewById(R.id.progress_bar) val swipeRefreshLayout = findViewById(R.id.view_source_swiperefreshlayout) + requestHeadersTitleTextView = findViewById(R.id.request_headers_title_textview) + requestHeadersTextView = findViewById(R.id.request_headers_textview) + responseMessageTitleTextView = findViewById(R.id.response_message_title_textview) + responseMessageTextView = findViewById(R.id.response_message_textview) + responseHeadersTitleTextView = findViewById(R.id.response_headers_title_textivew) + val responseHeadersTextView = findViewById(R.id.response_headers_textview) + responseBodyTitleTextView = findViewById(R.id.response_body_title_textview) + val responseBodyTextView = findViewById(R.id.response_body_textview) // Populate the URL text box. urlEditText.setText(currentUrl) @@ -253,8 +265,11 @@ class ViewSourceActivity: AppCompatActivity() { // Set the progress bar to be indeterminate. progressBar.isIndeterminate = true + // Update the layout. + updateLayout(currentUrl) + // Instantiate the WebView source factory. - val webViewSourceFactory: ViewModelProvider.Factory = WebViewSourceFactory(currentUrl!!, userAgent!!, localeString, proxy, MainWebViewActivity.executorService) + val webViewSourceFactory: ViewModelProvider.Factory = WebViewSourceFactory(currentUrl, userAgent, localeString, proxy, contentResolver, MainWebViewActivity.executorService) // Instantiate the WebView source view model class. val webViewSource = ViewModelProvider(this, webViewSourceFactory).get(WebViewSource::class.java) @@ -294,6 +309,9 @@ class ViewSourceActivity: AppCompatActivity() { // Get the URL. val urlString = urlEditText.text.toString() + // Update the layout. + updateLayout(urlString) + // Get the updated source. webViewSource.updateSource(urlString) } @@ -317,6 +335,9 @@ class ViewSourceActivity: AppCompatActivity() { // Get the URL. val urlString = urlEditText.text.toString() + // Update the layout. + updateLayout(urlString) + // Get the updated source. webViewSource.updateSource(urlString) @@ -411,4 +432,28 @@ class ViewSourceActivity: AppCompatActivity() { } } } + + private fun updateLayout(urlString: String) { + if (urlString.startsWith("content://")) { // This is a content URL. + // Hide the unused text views. + requestHeadersTitleTextView.visibility = View.GONE + requestHeadersTextView.visibility = View.GONE + responseMessageTitleTextView.visibility = View.GONE + responseMessageTextView.visibility = View.GONE + + // Change the text of the remaining title text views. + responseHeadersTitleTextView.setText(R.string.content_metadata) + responseBodyTitleTextView.setText(R.string.content_data) + } else { // This is not a content URL. + // Show the views. + requestHeadersTitleTextView.visibility = View.VISIBLE + requestHeadersTextView.visibility = View.VISIBLE + responseMessageTitleTextView.visibility = View.VISIBLE + responseMessageTextView.visibility = View.VISIBLE + + // Restore the text of the other title text views. + responseHeadersTitleTextView.setText(R.string.response_headers) + responseBodyTitleTextView.setText(R.string.response_body) + } + } } \ No newline at end of file