1
- using Android . App ;
1
+ //
2
+ // CAVOKATOR APP
3
+ // Website: https://github.com/Manuito83/Cavokator
4
+ // License GNU General Public License v3.0
5
+ // Manuel Ortega, 2018
6
+ //
7
+
8
+ using Android . App ;
2
9
using Android . Content ;
3
10
using Android . Content . PM ;
4
11
using Android . OS ;
7
14
using Android . Support . V7 . App ;
8
15
using Android . Support . V7 . Widget ;
9
16
using Android . Views ;
17
+ using System ;
10
18
using System . Collections . Generic ;
11
19
using SupportFragment = Android . Support . V4 . App . Fragment ;
12
20
@@ -16,40 +24,43 @@ namespace Cavokator
16
24
[ Activity ( Label = "Cavokator" , MainLauncher = true , Icon = "@drawable/ic_appicon" ,
17
25
ScreenOrientation = Android . Content . PM . ScreenOrientation . Portrait ) ]
18
26
19
- public class ActivityWxMain : AppCompatActivity
27
+ public class ActivityWxMain : AppCompatActivity , DrawerLayout . IDrawerListener
20
28
{
21
-
22
- #warning Did we create a changelog for this version?
29
+ //TODO [RELEASE]: Did we create a changelog for this version?
23
30
public static bool versionWithChangelog = true ;
24
31
25
32
// Set "true" only for testing!
26
33
bool overrideShowChangelog = false ;
27
34
28
35
DrawerLayout drawerLayout ;
29
36
37
+ private SupportFragment fragmentToShowWhenDrawerClosed ;
38
+
30
39
private SupportFragment mCurrentFragment ;
31
40
private WxMetarFragment mWxMetarFragment ;
41
+ private NotamFragment mNotamFragment ;
32
42
private ConditionFragment mConditionFragment ;
33
43
private SettingsFragment mSettingsFragment ;
34
44
private AboutFragment mAboutFragment ;
35
45
private Stack < SupportFragment > mStackFragment ;
36
-
46
+
37
47
protected override void OnCreate ( Bundle bundle )
38
48
{
39
49
base . OnCreate ( bundle ) ;
40
50
41
51
SetContentView ( Resource . Layout . drawer_layout ) ;
42
52
43
53
drawerLayout = FindViewById < DrawerLayout > ( Resource . Id . drawer_layout ) ;
54
+ drawerLayout . AddDrawerListener ( this ) ;
44
55
45
56
mWxMetarFragment = new WxMetarFragment ( ) ;
57
+ mNotamFragment = new NotamFragment ( ) ;
46
58
mConditionFragment = new ConditionFragment ( ) ;
47
59
mSettingsFragment = new SettingsFragment ( ) ;
48
60
mAboutFragment = new AboutFragment ( ) ;
49
61
50
62
mStackFragment = new Stack < SupportFragment > ( ) ;
51
63
52
-
53
64
// Initialize Toolbar
54
65
Toolbar toolbar = FindViewById < Toolbar > ( Resource . Id . toolbar ) ;
55
66
SetSupportActionBar ( toolbar ) ;
@@ -61,12 +72,15 @@ protected override void OnCreate(Bundle bundle)
61
72
var navigationView = FindViewById < NavigationView > ( Resource . Id . my_navigation_view ) ;
62
73
navigationView . NavigationItemSelected += NavigationView_NavigationItemSelected ;
63
74
75
+ // Change this depending on what the APP launches in
76
+ var fragmentToLaunch = mWxMetarFragment ;
77
+
64
78
// Add fragments to container (FrameLayout)
65
79
var ft = SupportFragmentManager . BeginTransaction ( ) ;
66
- ft . Add ( Resource . Id . flContent , mWxMetarFragment ) ;
80
+ ft . Add ( Resource . Id . flContent , fragmentToLaunch ) ;
67
81
ft . Commit ( ) ;
68
82
69
- mCurrentFragment = mWxMetarFragment ;
83
+ mCurrentFragment = fragmentToLaunch ;
70
84
71
85
72
86
//Did we change version number and are showing changelog ?
@@ -76,7 +90,6 @@ protected override void OnCreate(Bundle bundle)
76
90
}
77
91
}
78
92
79
-
80
93
private void ShowChangelog ( )
81
94
{
82
95
try
@@ -85,7 +98,7 @@ private void ShowChangelog()
85
98
PackageInfo pInfo = PackageManager . GetPackageInfo ( PackageName , 0 ) ;
86
99
int currentVersionCode = pInfo . VersionCode ;
87
100
88
- System . Console . WriteLine ( "VERSION: " + currentVersionCode ) ;
101
+ Console . WriteLine ( "VERSION: " + currentVersionCode ) ;
89
102
90
103
// Get current preferences
91
104
ISharedPreferences mVersionCodePrefs = Application . Context . GetSharedPreferences ( "AppVersion_Preferences" , FileCreationMode . Private ) ;
@@ -127,31 +140,38 @@ public override bool OnOptionsItemSelected(IMenuItem item)
127
140
return true ;
128
141
}
129
142
130
-
131
143
void NavigationView_NavigationItemSelected ( object sender , NavigationView . NavigationItemSelectedEventArgs e )
132
144
{
145
+ // Close drawer
146
+ drawerLayout . CloseDrawers ( ) ;
147
+
133
148
switch ( e . MenuItem . ItemId )
134
149
{
135
150
case Resource . Id . action_fragment_metar :
136
- ReplaceFragment ( mWxMetarFragment ) ;
151
+ fragmentToShowWhenDrawerClosed = mWxMetarFragment ;
152
+ //ReplaceFragment(mWxMetarFragment);
153
+ break ;
154
+ case Resource . Id . action_fragment_notam :
155
+ fragmentToShowWhenDrawerClosed = mNotamFragment ;
156
+ //ReplaceFragment(mNotamFragment);
137
157
break ;
138
158
case Resource . Id . action_fragment_condition :
139
- ReplaceFragment ( mConditionFragment ) ;
159
+ fragmentToShowWhenDrawerClosed = mConditionFragment ;
160
+ //ReplaceFragment(mConditionFragment);
140
161
break ;
141
162
case Resource . Id . action_fragment_settings :
142
- ReplaceFragment ( mSettingsFragment ) ;
163
+ fragmentToShowWhenDrawerClosed = mSettingsFragment ;
164
+ //ReplaceFragment(mSettingsFragment);
143
165
break ;
144
166
case Resource . Id . action_fragment_about :
145
- ReplaceFragment ( mAboutFragment ) ;
167
+ fragmentToShowWhenDrawerClosed = mAboutFragment ;
168
+ //ReplaceFragment(mAboutFragment);
146
169
break ;
147
170
}
148
-
149
- // Close drawer
150
- drawerLayout . CloseDrawers ( ) ;
171
+
151
172
}
152
-
153
173
154
- public void ReplaceFragment ( SupportFragment fragment )
174
+ private void ReplaceFragment ( SupportFragment fragment )
155
175
{
156
176
if ( fragment . IsVisible )
157
177
{
@@ -160,14 +180,14 @@ public void ReplaceFragment (SupportFragment fragment)
160
180
161
181
var ft = SupportFragmentManager . BeginTransaction ( ) ;
162
182
183
+ ft . SetCustomAnimations ( Resource . Animation . fragment_in , Resource . Animation . slide_right ) ;
163
184
ft . Replace ( Resource . Id . flContent , fragment ) ;
164
185
ft . Commit ( ) ;
165
186
//ft.AddToBackStack(null);
166
187
167
188
mCurrentFragment = fragment ;
168
189
}
169
190
170
-
171
191
public override void OnBackPressed ( )
172
192
{
173
193
if ( drawerLayout . IsDrawerOpen ( ( int ) GravityFlags . Start ) )
@@ -178,11 +198,27 @@ public override void OnBackPressed()
178
198
{
179
199
base . OnBackPressed ( ) ;
180
200
}
201
+ }
181
202
182
-
203
+ public void OnDrawerClosed ( View drawerView )
204
+ {
205
+ ReplaceFragment ( fragmentToShowWhenDrawerClosed ) ;
206
+ }
183
207
208
+ public void OnDrawerOpened ( View drawerView )
209
+ {
210
+ // Do nothing
211
+ }
212
+
213
+ public void OnDrawerSlide ( View drawerView , float slideOffset )
214
+ {
215
+ // Do nothing
184
216
}
185
217
218
+ public void OnDrawerStateChanged ( int newState )
219
+ {
220
+ // Do nothing
221
+ }
186
222
}
187
223
188
224
}
0 commit comments