Skip to content

Commit 18a6395

Browse files
committed
Merge pull request #453 from fat-tire/develop
Take #2: Start breaking Activities into fragments (breaks MITM for some reason) Okay. I'm going to assume it's my old libraries then. I'll merge and if there's an issue we can fix it. that's what the develop branch is for-- and I'd rather have new work going to the right fragment rather than the wrong activity which would need to be merged again. So merging.
2 parents bf8a2e3 + 835ffe2 commit 18a6395

File tree

12 files changed

+2835
-2581
lines changed

12 files changed

+2835
-2581
lines changed

cSploit/src/main/java/org/csploit/android/ActionActivity.java

Lines changed: 15 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -18,142 +18,35 @@
1818
*/
1919
package org.csploit.android;
2020

21-
import android.annotation.SuppressLint;
22-
import android.content.Context;
23-
import android.content.Intent;
2421
import android.content.SharedPreferences;
2522
import android.os.Bundle;
2623
import android.support.v7.app.AppCompatActivity;
27-
import android.view.LayoutInflater;
28-
import android.view.MenuItem;
29-
import android.view.View;
30-
import android.view.ViewGroup;
31-
import android.widget.AdapterView;
32-
import android.widget.ArrayAdapter;
33-
import android.widget.ImageView;
34-
import android.widget.ListView;
35-
import android.widget.TextView;
36-
import android.widget.Toast;
37-
38-
import org.csploit.android.core.Plugin;
39-
import org.csploit.android.core.System;
40-
import org.csploit.android.gui.dialogs.FinishDialog;
41-
import org.csploit.android.net.Target;
42-
43-
import java.util.ArrayList;
4424

4525
public class ActionActivity extends AppCompatActivity {
46-
private ArrayList<Plugin> mAvailable = null;
47-
private ListView theList;
48-
private Target mTarget;
26+
27+
ActionFragment f;
4928

5029
@Override
51-
public void onCreate(Bundle savedInstanceState) {
30+
protected void onCreate(Bundle savedInstanceState) {
31+
super.onCreate(savedInstanceState);
5232
SharedPreferences themePrefs = getSharedPreferences("THEME", 0);
53-
Boolean isDark = themePrefs.getBoolean("isDark", false);
54-
55-
if (isDark)
33+
if (themePrefs.getBoolean("isDark", false))
5634
setTheme(R.style.DarkTheme);
5735
else
5836
setTheme(R.style.AppTheme);
59-
super.onCreate(savedInstanceState);
60-
61-
mTarget = System.getCurrentTarget();
62-
63-
if (mTarget != null) {
64-
setTitle("cSploit > " + mTarget);
65-
setContentView(R.layout.actions_layout);
66-
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
67-
theList = (ListView) findViewById(R.id.android_list);
68-
mAvailable = System.getPluginsForTarget();
69-
ActionsAdapter mActionsAdapter = new ActionsAdapter();
70-
theList.setAdapter(mActionsAdapter);
71-
theList.setOnItemClickListener(new ListView.OnItemClickListener() {
72-
@Override
73-
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
74-
75-
if (System.checkNetworking(ActionActivity.this)) {
76-
Plugin plugin = mAvailable.get(position);
77-
System.setCurrentPlugin(plugin);
78-
79-
if (plugin.hasLayoutToShow()) {
80-
Toast.makeText(ActionActivity.this, getString(R.string.selected) + getString(plugin.getName()), Toast.LENGTH_SHORT).show();
81-
82-
startActivity(new Intent(
83-
ActionActivity.this,
84-
plugin.getClass()
85-
));
86-
overridePendingTransition(R.anim.fadeout, R.anim.fadein);
87-
} else
88-
plugin.onActionClick(getApplicationContext());
89-
}
90-
}
91-
});
92-
} else {
93-
new FinishDialog(getString(R.string.warning), getString(R.string.something_went_wrong), this).show();
37+
setContentView(R.layout.main);
38+
if (findViewById(R.id.mainframe) != null) {
39+
if (savedInstanceState != null) {
40+
return;
41+
}
42+
f = new ActionFragment();
43+
getSupportFragmentManager().beginTransaction()
44+
.add(R.id.mainframe, f).commit();
9445
}
9546
}
9647

97-
98-
@Override
99-
public boolean onOptionsItemSelected(MenuItem item) {
100-
switch (item.getItemId()) {
101-
case android.R.id.home:
102-
103-
onBackPressed();
104-
105-
return true;
106-
107-
default:
108-
return super.onOptionsItemSelected(item);
109-
}
110-
}
111-
112-
11348
@Override
11449
public void onBackPressed() {
115-
super.onBackPressed();
116-
overridePendingTransition(R.anim.fadeout, R.anim.fadein);
117-
}
118-
119-
public class ActionsAdapter extends ArrayAdapter<Plugin> {
120-
public ActionsAdapter() {
121-
super(ActionActivity.this, R.layout.actions_list_item, mAvailable);
122-
}
123-
124-
@SuppressLint("NewApi")
125-
@Override
126-
public View getView(int position, View convertView, ViewGroup parent) {
127-
View row = convertView;
128-
ActionHolder holder;
129-
130-
if (row == null) {
131-
LayoutInflater inflater = (LayoutInflater) ActionActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
132-
row = inflater.inflate(R.layout.actions_list_item, parent, false);
133-
if (getSharedPreferences("THEME", 0).getBoolean("isDark", false))
134-
row.setBackgroundResource(R.drawable.card_background_dark);
135-
holder = new ActionHolder();
136-
137-
holder.icon = (ImageView) (row != null ? row.findViewById(R.id.actionIcon) : null);
138-
holder.name = (TextView) (row != null ? row.findViewById(R.id.actionName) : null);
139-
holder.description = (TextView) (row != null ? row.findViewById(R.id.actionDescription) : null);
140-
if (row != null) row.setTag(holder);
141-
142-
} else holder = (ActionHolder) row.getTag();
143-
144-
Plugin action = mAvailable.get(position);
145-
146-
holder.icon.setImageResource(action.getIconResourceId());
147-
holder.name.setText(getString(action.getName()));
148-
holder.description.setText(getString(action.getDescription()));
149-
150-
return row;
151-
}
152-
153-
public class ActionHolder {
154-
ImageView icon;
155-
TextView name;
156-
TextView description;
157-
}
50+
f.onBackPressed();
15851
}
159-
}
52+
}
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
package org.csploit.android;
2+
3+
import android.annotation.SuppressLint;
4+
import android.content.Context;
5+
import android.content.Intent;
6+
import android.content.SharedPreferences;
7+
import android.os.Bundle;
8+
import android.support.annotation.Nullable;
9+
import android.support.v4.app.Fragment;
10+
import android.support.v4.content.ContextCompat;
11+
import android.support.v7.app.AppCompatActivity;
12+
import android.view.LayoutInflater;
13+
import android.view.MenuItem;
14+
import android.view.View;
15+
import android.view.ViewGroup;
16+
import android.widget.AdapterView;
17+
import android.widget.ArrayAdapter;
18+
import android.widget.ImageView;
19+
import android.widget.ListView;
20+
import android.widget.TextView;
21+
import android.widget.Toast;
22+
23+
import org.csploit.android.core.Plugin;
24+
import org.csploit.android.core.System;
25+
import org.csploit.android.gui.dialogs.FinishDialog;
26+
import org.csploit.android.net.Target;
27+
28+
import java.util.ArrayList;
29+
30+
public class ActionFragment extends Fragment {
31+
32+
private ArrayList<Plugin> mAvailable = null;
33+
private ListView theList;
34+
private Target mTarget;
35+
36+
37+
@Nullable
38+
@Override
39+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
40+
super.onCreate(savedInstanceState);
41+
setHasOptionsMenu(true);
42+
return inflater.inflate(R.layout.actions_layout, container, false);
43+
}
44+
45+
@Override
46+
public void onViewCreated(View v, Bundle savedInstanceState) {
47+
SharedPreferences themePrefs = getActivity().getSharedPreferences("THEME", 0);
48+
Boolean isDark = themePrefs.getBoolean("isDark", false);
49+
if (isDark) {
50+
getActivity().setTheme(R.style.DarkTheme);
51+
v.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.background_window_dark));
52+
}
53+
else {
54+
getActivity().setTheme(R.style.AppTheme);
55+
v.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.background_window));
56+
}
57+
mTarget = org.csploit.android.core.System.getCurrentTarget();
58+
59+
if (mTarget != null) {
60+
getActivity().setTitle("cSploit > " + mTarget);
61+
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
62+
theList = (ListView) getActivity().findViewById(R.id.android_list);
63+
mAvailable = System.getPluginsForTarget();
64+
ActionsAdapter mActionsAdapter = new ActionsAdapter();
65+
theList.setAdapter(mActionsAdapter);
66+
theList.setOnItemClickListener(new ListView.OnItemClickListener() {
67+
@Override
68+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
69+
70+
if (System.checkNetworking(getActivity())) {
71+
Plugin plugin = mAvailable.get(position);
72+
System.setCurrentPlugin(plugin);
73+
74+
if (plugin.hasLayoutToShow()) {
75+
Toast.makeText(getActivity(), getString(R.string.selected) + getString(plugin.getName()), Toast.LENGTH_SHORT).show();
76+
77+
startActivity(new Intent(
78+
getActivity(),
79+
plugin.getClass()
80+
));
81+
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
82+
} else
83+
plugin.onActionClick(getActivity().getApplicationContext());
84+
}
85+
}
86+
});
87+
} else {
88+
new FinishDialog(getString(R.string.warning), getString(R.string.something_went_wrong), getActivity()).show();
89+
}
90+
}
91+
92+
93+
@Override
94+
public boolean onOptionsItemSelected(MenuItem item) {
95+
switch (item.getItemId()) {
96+
case android.R.id.home:
97+
98+
getActivity().onBackPressed();
99+
100+
return true;
101+
102+
default:
103+
return super.onOptionsItemSelected(item);
104+
}
105+
}
106+
107+
public void onBackPressed() {
108+
getActivity().finish();
109+
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
110+
}
111+
112+
public class ActionsAdapter extends ArrayAdapter<Plugin> {
113+
public ActionsAdapter() {
114+
super(getActivity(), R.layout.actions_list_item, mAvailable);
115+
}
116+
117+
@SuppressLint("NewApi")
118+
@Override
119+
public View getView(int position, View convertView, ViewGroup parent) {
120+
View row = convertView;
121+
ActionHolder holder;
122+
123+
if (row == null) {
124+
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
125+
row = inflater.inflate(R.layout.actions_list_item, parent, false);
126+
if (getActivity().getSharedPreferences("THEME", 0).getBoolean("isDark", false))
127+
row.setBackgroundResource(R.drawable.card_background_dark);
128+
holder = new ActionHolder();
129+
130+
holder.icon = (ImageView) (row != null ? row.findViewById(R.id.actionIcon) : null);
131+
holder.name = (TextView) (row != null ? row.findViewById(R.id.actionName) : null);
132+
holder.description = (TextView) (row != null ? row.findViewById(R.id.actionDescription) : null);
133+
if (row != null) row.setTag(holder);
134+
135+
} else holder = (ActionHolder) row.getTag();
136+
137+
Plugin action = mAvailable.get(position);
138+
139+
holder.icon.setImageResource(action.getIconResourceId());
140+
holder.name.setText(getString(action.getName()));
141+
holder.description.setText(getString(action.getDescription()));
142+
143+
return row;
144+
}
145+
146+
public class ActionHolder {
147+
ImageView icon;
148+
TextView name;
149+
TextView description;
150+
}
151+
}
152+
153+
}

0 commit comments

Comments
 (0)