Skip to content

Commit 7d26892

Browse files
committed
More work on fragments-- make settings work
1 parent 1594224 commit 7d26892

File tree

6 files changed

+89
-76
lines changed

6 files changed

+89
-76
lines changed

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

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import android.support.v7.app.ActionBarDrawerToggle;
3232
import android.support.v7.app.AppCompatActivity;
3333
import android.view.LayoutInflater;
34+
import android.view.Menu;
35+
import android.view.MenuInflater;
3436
import android.view.MenuItem;
3537
import android.view.View;
3638
import android.view.ViewGroup;
@@ -49,6 +51,7 @@ public class MainActivity extends AppCompatActivity {
4951
MainFragment mMainFragment;
5052
ActionBarDrawerToggle mDrawerToggle;
5153
DrawerLayout mDrawerLayout;
54+
private Menu mMenu = null;
5255

5356
@Override
5457
protected void onCreate(Bundle savedInstanceState) {
@@ -79,30 +82,69 @@ protected void onCreate(Bundle savedInstanceState) {
7982
mDrawerToggle = new ActionBarDrawerToggle(this,
8083
mDrawerLayout, R.string.drawer_was_opened, R.string.drawer_was_closed);
8184
mDrawerLayout.setDrawerListener(mDrawerToggle);
82-
mDrawerToggle.syncState();
8385
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
8486
getSupportActionBar().setHomeButtonEnabled(true);
8587

8688
mMainFragment = new MainFragment();
8789
getSupportFragmentManager().beginTransaction()
88-
.add(R.id.mainframe, mMainFragment).commit();
90+
.add(R.id.mainframe, mMainFragment, "MainFragment")
91+
.setCustomAnimations(R.anim.fadein, R.anim.fadeout, R.anim.fadein, R.anim.fadeout)
92+
.commit();
8993
}
9094
}
9195

92-
public boolean onOptionsItemSelected(MenuItem item) {
96+
@Override
97+
public boolean onCreateOptionsMenu(Menu menu) {
98+
MenuInflater inflater = getMenuInflater();
99+
inflater.inflate(R.menu.top, menu);
100+
mMenu = menu;
101+
return true;
102+
}
103+
104+
105+
public void launchSettings() {
106+
getSupportFragmentManager().beginTransaction()
107+
.add(R.id.mainframe, new SettingsFragment.PrefsFrag())
108+
.addToBackStack(null)
109+
.setCustomAnimations(R.anim.fadein, R.anim.fadeout, R.anim.fadein, R.anim.fadeout)
110+
.commit();
111+
}
112+
113+
114+
@Override
115+
public boolean onOptionsItemSelected(final MenuItem item) {
116+
93117
if (mDrawerToggle.onOptionsItemSelected(item)) {
94118
return true;
95119
}
96-
return true;
97-
}
98120

99-
public void onBackPressed() {
100-
mMainFragment.onBackPressed();
121+
switch (item.getItemId()) {
122+
123+
case R.id.settings:
124+
launchSettings();
125+
return true;
126+
127+
case R.id.about:
128+
launchAbout();
129+
return true;
130+
131+
case R.id.submit_issue:
132+
submitIssue();
133+
return true;
134+
135+
default:
136+
return false;
137+
}
101138
}
102139

103-
public void launchSettings() {
104-
startActivity(new Intent(this, SettingsActivity.class));
105-
overridePendingTransition(R.anim.fadeout, R.anim.fadein);
140+
public void submitIssue() {
141+
String uri = getString(R.string.github_new_issue_url);
142+
Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
143+
startActivity(browser);
144+
145+
// for fat-tire:
146+
// String.format(getString(R.string.issue_message), getString(R.string.github_issues_url), getString(R.string.github_new_issue_url));
147+
106148
}
107149

108150
public void launchAbout() {
@@ -144,9 +186,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) {
144186
launchSettings();
145187
break;
146188
case 2:
147-
String uri = getString(R.string.github_new_issue_url);
148-
Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
149-
startActivity(browser);
189+
submitIssue();
150190
break;
151191
}
152192
}
@@ -182,5 +222,13 @@ public View getView(int position, View convertView, ViewGroup parent) {
182222
}
183223
}
184224

185-
225+
@Override
226+
public void onBackPressed() {
227+
// Only ask for the double-backpressed when MainFragment is all that's left.
228+
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
229+
mMainFragment.onBackPressed();
230+
} else {
231+
super.onBackPressed();
232+
}
233+
}
186234
}

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import android.content.SharedPreferences;
2626
import android.graphics.Typeface;
2727
import android.net.ConnectivityManager;
28-
import android.net.Uri;
2928
import android.os.Build;
3029
import android.os.Bundle;
3130
import android.support.annotation.Nullable;
@@ -57,7 +56,6 @@
5756
import org.csploit.android.core.Plugin;
5857
import org.csploit.android.core.System;
5958
import org.csploit.android.events.Event;
60-
import org.csploit.android.gui.dialogs.AboutDialog;
6159
import org.csploit.android.gui.dialogs.ChoiceDialog;
6260
import org.csploit.android.gui.dialogs.ConfirmDialog;
6361
import org.csploit.android.gui.dialogs.ConfirmDialog.ConfirmDialogListener;
@@ -323,8 +321,6 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
323321

324322
mMenu = menu;
325323
configureMenu();
326-
super.onCreateOptionsMenu(menu, inflater);
327-
getActivity().onCreateOptionsMenu(menu);
328324
}
329325

330326
private boolean isConnectivityAvailable() {
@@ -812,11 +808,6 @@ public void onItemSelected(int index) {
812808
.show();
813809
return true;
814810

815-
case R.id.settings:
816-
startActivity(new Intent(getActivity(), SettingsActivity.class));
817-
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
818-
return true;
819-
820811
case R.id.ss_monitor:
821812
new Thread(new Runnable() {
822813
@Override
@@ -835,18 +826,6 @@ public void run() {
835826
}).start();
836827
return true;
837828

838-
case R.id.submit_issue:
839-
String uri = getString(R.string.github_new_issue_url);
840-
Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
841-
startActivity(browser);
842-
// for fat-tire:
843-
// String.format(getString(R.string.issue_message), getString(R.string.github_issues_url), getString(R.string.github_new_issue_url));
844-
return true;
845-
846-
case R.id.about:
847-
new AboutDialog(getActivity()).show();
848-
return true;
849-
850829
default:
851830
return super.onOptionsItemSelected(item);
852831
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,4 @@ protected void onCreate(Bundle savedInstanceState) {
4545
}
4646
}
4747

48-
public void onBackPressed() {
49-
f.onBackPressed();
50-
}
5148
}

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

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import android.support.v7.preference.Preference;
3333
import android.support.v7.preference.PreferenceFragmentCompat;
3434
import android.support.v7.preference.TwoStatePreference;
35-
import android.view.MenuItem;
3635
import android.view.View;
3736
import android.widget.Toast;
3837

@@ -71,7 +70,8 @@ public void onCreate(Bundle savedInstanceState) {
7170
getActivity().setTheme(R.style.PrefsTheme);
7271
super.onCreate(savedInstanceState);
7372
getActivity().getSupportFragmentManager().beginTransaction()
74-
.replace(android.R.id.content, new PrefsFrag())
73+
.add(R.id.mainframe, new PrefsFrag())
74+
.addToBackStack(null)
7575
.commit();
7676
}
7777

@@ -575,18 +575,6 @@ private void onMsfBranchesAvailable() {
575575
}
576576
}
577577

578-
@Override
579-
public boolean onOptionsItemSelected(MenuItem item) {
580-
switch (item.getItemId()) {
581-
case android.R.id.home:
582-
getActivity().onBackPressed();
583-
return true;
584-
585-
default:
586-
return super.onOptionsItemSelected(item);
587-
}
588-
}
589-
590578
@Override
591579
public void onDestroy() {
592580
if (mReceiver != null) {
@@ -597,8 +585,4 @@ public void onDestroy() {
597585
}
598586
}
599587

600-
public void onBackPressed() {
601-
getActivity().finish();
602-
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
603-
}
604588
}

cSploit/src/main/res/menu/main.xml

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<menu xmlns:csploit="http://schemas.android.com/apk/res-auto"
3-
xmlns:android="http://schemas.android.com/apk/res/android">
4-
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:csploit="http://schemas.android.com/apk/res-auto">
54

65
<item
76
android:id="@+id/add"
87
android:icon="@drawable/target_add"
9-
csploit:showAsAction="ifRoom"
10-
android:title="@string/menu_add" />
8+
android:title="@string/menu_add"
9+
csploit:showAsAction="ifRoom" />
1110
<item
1211
android:id="@+id/scan"
1312
android:icon="@drawable/ic_refresh"
14-
csploit:showAsAction="ifRoom"
15-
android:title="@string/menu_scan" />
13+
android:title="@string/menu_scan"
14+
csploit:showAsAction="ifRoom" />
1615
<item
1716
android:id="@+id/wifi_scan"
1817
android:icon="@drawable/ic_wifi_signal_4"
19-
csploit:showAsAction="ifRoom"
20-
android:title="@string/menu_wifi_scan" />
18+
android:title="@string/menu_wifi_scan"
19+
csploit:showAsAction="ifRoom" />
2120

2221
<item
2322
android:id="@+id/wifi_ifaces"
2423
android:icon="@drawable/ic_refresh"
25-
csploit:showAsAction="ifRoom"
26-
android:title="@string/menu_ifaces" />
24+
android:title="@string/menu_ifaces"
25+
csploit:showAsAction="ifRoom" />
2726

2827
<group android:id="@+id/session_group">
2928
<item
@@ -35,9 +34,6 @@
3534
<item
3635
android:id="@+id/restore_session"
3736
android:title="@string/menu_restore_session" />
38-
<item
39-
android:id="@+id/settings"
40-
android:title="@string/menu_settings" />
4137
</group>
4238
<group android:id="@+id/misc_group">
4339
<item
@@ -46,12 +42,6 @@
4642
<item
4743
android:id="@+id/ss_msfrpcd"
4844
android:title="@string/menu_stop_msfrpcd" />
49-
<item
50-
android:id="@+id/submit_issue"
51-
android:title="@string/menu_submit_issue" />
52-
<item
53-
android:id="@+id/about"
54-
android:title="@string/menu_about" />
5545
</group>
5646

5747
</menu>

cSploit/src/main/res/menu/top.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android">
3+
<group
4+
android:orderInCategory="20">>
5+
<item
6+
android:id="@+id/settings"
7+
android:title="@string/menu_settings" />
8+
<item
9+
android:id="@+id/submit_issue"
10+
android:title="@string/menu_submit_issue" />
11+
<item
12+
android:id="@+id/about"
13+
android:title="@string/menu_about" />
14+
</group>
15+
</menu>

0 commit comments

Comments
 (0)