mirror of
https://github.com/emanuele-f/PCAPdroid.git
synced 2026-06-19 21:05:25 +08:00
Add ability to copy/share whitelist
This commit is contained in:
parent
f49c34ddec
commit
66f27ff805
@ -64,6 +64,7 @@ import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.emanuelef.remote_capture.interfaces.TextAdapter;
|
||||
import com.emanuelef.remote_capture.model.AppDescriptor;
|
||||
import com.emanuelef.remote_capture.model.Prefs;
|
||||
import com.emanuelef.remote_capture.views.AppsListView;
|
||||
@ -415,6 +416,19 @@ public class Utils {
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static String adapter2Text(TextAdapter adapter) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
for(int i=0; i< adapter.getCount(); i++) {
|
||||
String text = adapter.getItemText(i);
|
||||
|
||||
builder.append(text);
|
||||
builder.append("\n");
|
||||
}
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static boolean isTv(Context context) {
|
||||
UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
|
||||
|
||||
|
||||
@ -19,14 +19,24 @@
|
||||
|
||||
package com.emanuelef.remote_capture.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.ListView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.emanuelef.remote_capture.R;
|
||||
import com.emanuelef.remote_capture.Utils;
|
||||
import com.emanuelef.remote_capture.adapters.WhitelistEditAdapter;
|
||||
import com.emanuelef.remote_capture.fragments.AppsFragment;
|
||||
import com.emanuelef.remote_capture.fragments.WhitelistFragment;
|
||||
|
||||
public class WhitelistActivity extends BaseActivity {
|
||||
private static final String TAG = "WhitelistActivity";
|
||||
private WhitelistFragment mFragment;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -39,4 +49,46 @@ public class WhitelistActivity extends BaseActivity {
|
||||
.replace(R.id.whitelist_fragment, new WhitelistFragment())
|
||||
.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mFragment = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.copy_share_menu, menu);
|
||||
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
ListView lv = findViewById(R.id.whitelist);
|
||||
|
||||
if(lv == null)
|
||||
return false;
|
||||
|
||||
if(id == R.id.copy_to_clipboard) {
|
||||
String contents = Utils.adapter2Text((WhitelistEditAdapter)lv.getAdapter());
|
||||
Utils.copyToClipboard(this, contents);
|
||||
return true;
|
||||
} else if(id == R.id.share) {
|
||||
String contents = Utils.adapter2Text((WhitelistEditAdapter)lv.getAdapter());
|
||||
|
||||
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
|
||||
intent.setType("text/plain");
|
||||
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.whitelist));
|
||||
intent.putExtra(android.content.Intent.EXTRA_TEXT, contents);
|
||||
|
||||
startActivity(Intent.createChooser(intent, getResources().getString(R.string.share)));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,11 +30,12 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.emanuelef.remote_capture.R;
|
||||
import com.emanuelef.remote_capture.interfaces.TextAdapter;
|
||||
import com.emanuelef.remote_capture.model.ConnectionsMatcher;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
public class WhitelistEditAdapter extends ArrayAdapter<ConnectionsMatcher.Item> {
|
||||
public class WhitelistEditAdapter extends ArrayAdapter<ConnectionsMatcher.Item> implements TextAdapter {
|
||||
private final LayoutInflater mLayoutInflater;
|
||||
|
||||
public WhitelistEditAdapter(Context context, Iterator<ConnectionsMatcher.Item> items) {
|
||||
@ -58,4 +59,9 @@ public class WhitelistEditAdapter extends ArrayAdapter<ConnectionsMatcher.Item>
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemText(int pos) {
|
||||
return getItem(pos).getLabel();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
package com.emanuelef.remote_capture.interfaces;
|
||||
|
||||
public interface TextAdapter {
|
||||
String getItemText(int pos);
|
||||
int getCount();
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user