Skip to content

Commit 7cc57cf

Browse files
committed
Initial commit
0 parents  commit 7cc57cf

File tree

153 files changed

+1633
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+1633
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.gradle
2+
/local.properties
3+
/.idea/workspace.xml
4+
.DS_Store

HoloKitKatDrawer/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

HoloKitKatDrawer/build.gradle

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apply plugin: 'android'
2+
3+
android {
4+
compileSdkVersion 19
5+
buildToolsVersion '19.0.0'
6+
7+
defaultConfig {
8+
minSdkVersion 19
9+
targetSdkVersion 19
10+
versionCode 1
11+
versionName "1.0"
12+
}
13+
buildTypes {
14+
release {
15+
runProguard false
16+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
17+
}
18+
}
19+
}
20+
21+
dependencies {
22+
compile 'com.android.support:support-v4:+'
23+
compile 'com.joanzapata.android:android-iconify:+'
24+
compile fileTree(dir: 'libs', include: ['*.jar'])
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest
3+
package="com.tundem.holokitkatdrawer"
4+
xmlns:android="http://schemas.android.com/apk/res/android">
5+
6+
<application
7+
android:allowBackup="true"
8+
android:icon="@drawable/ic_launcher"
9+
android:label="@string/app_name"
10+
android:theme="@style/Theme.Custom">
11+
<activity
12+
android:name="com.tundem.holokitkatdrawer.MainActivity"
13+
android:configChanges="orientation|keyboardHidden|screenSize"
14+
android:label="@string/app_name"
15+
android:theme="@style/Theme.Custom">
16+
<intent-filter>
17+
<action android:name="android.intent.action.MAIN"/>
18+
19+
<category android:name="android.intent.category.LAUNCHER"/>
20+
</intent-filter>
21+
</activity>
22+
</application>
23+
24+
</manifest>
29.2 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
package com.tundem.holokitkatdrawer;
2+
3+
import android.app.Activity;
4+
import android.app.Fragment;
5+
import android.app.FragmentManager;
6+
import android.content.res.Configuration;
7+
import android.os.Bundle;
8+
import android.support.v4.app.ActionBarDrawerToggle;
9+
import android.support.v4.widget.DrawerLayout;
10+
import android.util.Log;
11+
import android.view.Menu;
12+
import android.view.MenuItem;
13+
import android.view.View;
14+
import android.widget.AdapterView;
15+
import android.widget.FrameLayout;
16+
import android.widget.ListView;
17+
18+
import com.joanzapata.android.iconify.Iconify;
19+
import com.tundem.holokitkatdrawer.adapter.NavDrawerListAdapter;
20+
import com.tundem.holokitkatdrawer.model.NavDrawerItem;
21+
import com.tundem.holokitkatdrawer.util.UIUtils;
22+
23+
import java.util.ArrayList;
24+
25+
public class MainActivity extends Activity {
26+
private DrawerLayout mDrawerLayout;
27+
private ListView mDrawerList;
28+
private ActionBarDrawerToggle mDrawerToggle;
29+
30+
// nav drawer title
31+
private CharSequence mDrawerTitle;
32+
33+
// used to store app title
34+
private CharSequence mTitle;
35+
36+
// slide menu items
37+
private String[] navMenuTitles;
38+
39+
private ArrayList<NavDrawerItem> navDrawerItems;
40+
private NavDrawerListAdapter adapter;
41+
42+
@Override
43+
protected void onCreate(Bundle savedInstanceState) {
44+
super.onCreate(savedInstanceState);
45+
setContentView(R.layout.activity_main);
46+
47+
mTitle = mDrawerTitle = getTitle();
48+
49+
// load slide menu items
50+
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
51+
52+
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
53+
mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
54+
55+
//init ui margins to make our activity beautiful!
56+
mDrawerLayout.setLayoutParams(UIUtils.handleTranslucentDecorMargins(this, getResources().getConfiguration().orientation, ((FrameLayout.LayoutParams) mDrawerLayout.getLayoutParams())));
57+
58+
59+
navDrawerItems = new ArrayList<NavDrawerItem>();
60+
// adding nav drawer items to array
61+
// Home
62+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0]));
63+
// Freeplay
64+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1]));
65+
// Custom
66+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2]));
67+
// Settings
68+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], Iconify.IconValue.fa_cog, false));
69+
// Help
70+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], Iconify.IconValue.fa_question, false));
71+
// Open Source
72+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], Iconify.IconValue.fa_github, false));
73+
// Contact
74+
navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], Iconify.IconValue.fa_bullhorn, false));
75+
76+
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
77+
78+
// setting the nav drawer list adapter
79+
adapter = new NavDrawerListAdapter(getApplicationContext(),
80+
navDrawerItems);
81+
mDrawerList.setAdapter(adapter);
82+
83+
// enabling action bar app icon and behaving it as toggle button
84+
getActionBar().setDisplayHomeAsUpEnabled(true);
85+
getActionBar().setHomeButtonEnabled(true);
86+
87+
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
88+
R.drawable.ic_drawer, //nav menu toggle icon
89+
R.string.app_name, // nav drawer open - description for accessibility
90+
R.string.app_name // nav drawer close - description for accessibility
91+
) {
92+
public void onDrawerClosed(View view) {
93+
getActionBar().setTitle(mTitle);
94+
// calling onPrepareOptionsMenu() to show action bar icons
95+
invalidateOptionsMenu();
96+
}
97+
98+
public void onDrawerOpened(View drawerView) {
99+
getActionBar().setTitle(mDrawerTitle);
100+
// calling onPrepareOptionsMenu() to hide action bar icons
101+
invalidateOptionsMenu();
102+
}
103+
};
104+
mDrawerLayout.setDrawerListener(mDrawerToggle);
105+
106+
if (savedInstanceState == null) {
107+
// on first time display view for first nav item
108+
displayView(0);
109+
}
110+
}
111+
112+
@Override
113+
public boolean onCreateOptionsMenu(Menu menu) {
114+
getMenuInflater().inflate(R.menu.main, menu);
115+
return true;
116+
}
117+
118+
@Override
119+
public boolean onOptionsItemSelected(MenuItem item) {
120+
// toggle nav drawer on selecting action bar app icon/title
121+
if (mDrawerToggle.onOptionsItemSelected(item)) {
122+
return true;
123+
}
124+
// Handle action bar actions click
125+
switch (item.getItemId()) {
126+
case R.id.action_settings:
127+
return true;
128+
default:
129+
return super.onOptionsItemSelected(item);
130+
}
131+
}
132+
133+
/* *
134+
* Called when invalidateOptionsMenu() is triggered
135+
*/
136+
@Override
137+
public boolean onPrepareOptionsMenu(Menu menu) {
138+
// if nav drawer is opened, hide the action items
139+
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
140+
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
141+
return super.onPrepareOptionsMenu(menu);
142+
}
143+
144+
/**
145+
* Diplaying fragment view for selected nav drawer list item
146+
*/
147+
private void displayView(int position) {
148+
// update the main content by replacing fragments
149+
Fragment fragment = null;
150+
switch (position) {
151+
case 0:
152+
fragment = new SampleFragment(navMenuTitles[position]);
153+
break;
154+
case 1:
155+
fragment = new SampleFragment(navMenuTitles[position]);
156+
break;
157+
case 2:
158+
fragment = new SampleFragment(navMenuTitles[position]);
159+
break;
160+
case 3:
161+
fragment = new SampleFragment(navMenuTitles[position]);
162+
break;
163+
case 4:
164+
fragment = new SampleFragment(navMenuTitles[position]);
165+
break;
166+
case 5:
167+
fragment = new SampleFragment(navMenuTitles[position]);
168+
break;
169+
case 6:
170+
fragment = new SampleFragment(navMenuTitles[position]);
171+
break;
172+
173+
default:
174+
break;
175+
}
176+
177+
if (fragment != null) {
178+
FragmentManager fragmentManager = getFragmentManager();
179+
fragmentManager.beginTransaction()
180+
.replace(R.id.frame_container, fragment).commit();
181+
182+
// update selected item and title, then close the drawer
183+
mDrawerList.setItemChecked(position, true);
184+
mDrawerList.setSelection(position);
185+
setTitle(navMenuTitles[position]);
186+
mDrawerLayout.closeDrawer(mDrawerList);
187+
} else {
188+
// error in creating fragment
189+
Log.e("MainActivity", "Error in creating fragment");
190+
}
191+
}
192+
193+
@Override
194+
public void setTitle(CharSequence title) {
195+
mTitle = title;
196+
getActionBar().setTitle(mTitle);
197+
}
198+
199+
/**
200+
* When using the ActionBarDrawerToggle, you must call it during
201+
* onPostCreate() and onConfigurationChanged()...
202+
*/
203+
204+
@Override
205+
protected void onPostCreate(Bundle savedInstanceState) {
206+
super.onPostCreate(savedInstanceState);
207+
// Sync the toggle state after onRestoreInstanceState has occurred.
208+
mDrawerToggle.syncState();
209+
}
210+
211+
@Override
212+
public void onConfigurationChanged(Configuration newConfig) {
213+
super.onConfigurationChanged(newConfig);
214+
215+
mDrawerLayout.setLayoutParams(UIUtils.handleTranslucentDecorMargins(this, newConfig.orientation, ((FrameLayout.LayoutParams) mDrawerLayout.getLayoutParams())));
216+
217+
// Pass any configuration change to the drawer toggls
218+
mDrawerToggle.onConfigurationChanged(newConfig);
219+
}
220+
221+
222+
/**
223+
* Slide menu item click listener
224+
*/
225+
private class SlideMenuClickListener implements
226+
ListView.OnItemClickListener {
227+
@Override
228+
public void onItemClick(AdapterView<?> parent, View view, int position,
229+
long id) {
230+
// display view for selected nav drawer item
231+
displayView(position);
232+
}
233+
}
234+
235+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.tundem.holokitkatdrawer;
2+
3+
import android.app.Fragment;
4+
import android.os.Bundle;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.TextView;
9+
10+
public class SampleFragment extends Fragment {
11+
12+
private String title = "";
13+
14+
public SampleFragment(String title) {
15+
this.title = title;
16+
}
17+
18+
@Override
19+
public View onCreateView(LayoutInflater inflater, ViewGroup container,
20+
Bundle savedInstanceState) {
21+
22+
View rootView = inflater.inflate(R.layout.fragment_sample, container, false);
23+
24+
((TextView) rootView.findViewById(R.id.txtLabel)).setText(title);
25+
26+
return rootView;
27+
}
28+
}

0 commit comments

Comments
 (0)