From 3e08121edcbfa47360727dfd50fed78a2de83045 Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Mon, 1 Mar 2021 10:14:45 +0100 Subject: [PATCH] Add inspector link into the status view --- .../fragments/StatusFragment.java | 24 +++++++++++++++++++ app/src/main/res/layout/status.xml | 18 ++++++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/emanuelef/remote_capture/fragments/StatusFragment.java b/app/src/main/java/com/emanuelef/remote_capture/fragments/StatusFragment.java index f1589807..5aaff2ed 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/fragments/StatusFragment.java +++ b/app/src/main/java/com/emanuelef/remote_capture/fragments/StatusFragment.java @@ -25,6 +25,8 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.method.LinkMovementMethod; import android.util.Log; @@ -39,6 +41,7 @@ import androidx.fragment.app.Fragment; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; +import com.emanuelef.remote_capture.activities.InspectorActivity; import com.emanuelef.remote_capture.model.AppState; import com.emanuelef.remote_capture.CaptureService; import com.emanuelef.remote_capture.model.Prefs; @@ -48,9 +51,12 @@ import com.emanuelef.remote_capture.activities.MainActivity; import com.emanuelef.remote_capture.activities.StatsActivity; import com.emanuelef.remote_capture.interfaces.AppStateListener; +import org.w3c.dom.Text; + public class StatusFragment extends Fragment implements AppStateListener { private TextView mCollectorInfo; private TextView mCaptureStatus; + private TextView mInspectorLink; private MainActivity mActivity; private SharedPreferences mPrefs; @@ -79,6 +85,7 @@ public class StatusFragment extends Fragment implements AppStateListener { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { mCollectorInfo = view.findViewById(R.id.collector_info); mCaptureStatus = view.findViewById(R.id.status_view); + mInspectorLink = view.findViewById(R.id.inspector_link); mPrefs = PreferenceManager.getDefaultSharedPreferences(mActivity); mCaptureStatus.setOnClickListener(v -> { @@ -91,6 +98,8 @@ public class StatusFragment extends Fragment implements AppStateListener { // Make URLs clickable mCollectorInfo.setMovementMethod(LinkMovementMethod.getInstance()); + setupInspectorLinK(); + mPrefs.registerOnSharedPreferenceChangeListener((sharedPreferences, s) -> { if((mActivity != null) && (mActivity.getState() == AppState.ready)) refreshPcapDumpInfo(); @@ -110,6 +119,19 @@ public class StatusFragment extends Fragment implements AppStateListener { mActivity.setAppStateListener(this); } + private void setupInspectorLinK() { + int color = getResources().getColor(android.R.color.tab_indicator_text); + + mInspectorLink.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_search, 0, 0, 0); + Drawable drawables[] = mInspectorLink.getCompoundDrawables(); + drawables[0].setColorFilter(color, PorterDuff.Mode.SRC_IN); + + mInspectorLink.setOnClickListener(v -> { + Intent intent = new Intent(getActivity(), InspectorActivity.class); + startActivity(intent); + }); + } + private void processStatsUpdateIntent(Intent intent) { long bytes_sent = intent.getLongExtra(CaptureService.TRAFFIC_STATS_UPDATE_SENT_BYTES, 0); long bytes_rcvd = intent.getLongExtra(CaptureService.TRAFFIC_STATS_UPDATE_RCVD_BYTES, 0); @@ -160,10 +182,12 @@ public class StatusFragment extends Fragment implements AppStateListener { switch(state) { case ready: mCaptureStatus.setText(R.string.ready); + mInspectorLink.setVisibility(View.GONE); refreshPcapDumpInfo(); break; case running: mCaptureStatus.setText(Utils.formatBytes(CaptureService.getBytes())); + mInspectorLink.setVisibility(View.VISIBLE); refreshPcapDumpInfo(); break; default: diff --git a/app/src/main/res/layout/status.xml b/app/src/main/res/layout/status.xml index 44752eef..48a6aff2 100644 --- a/app/src/main/res/layout/status.xml +++ b/app/src/main/res/layout/status.xml @@ -11,7 +11,7 @@ android:id="@+id/collector_info" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="82dp" + android:layout_marginTop="60dp" android:gravity="center" android:autoLink="web" android:drawablePadding="5dp" @@ -20,6 +20,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/status_view" /> + +