diff --git a/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java b/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
index b4ab180..fbd0349 100644
--- a/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
+++ b/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
@@ -3,35 +3,77 @@ package net.headlezz.notificationlogger;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
+import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
+import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import butterknife.Bind;
import butterknife.ButterKnife;
-public class MainActivity extends AppCompatActivity implements Toolbar.OnMenuItemClickListener {
+public class MainActivity extends AppCompatActivity {
@Bind(R.id.toolbar)
Toolbar mToolbar;
+ @Bind(R.id.main_menu_fab_add_notification)
+ FloatingActionButton mFAB;
+
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
ButterKnife.bind(this);
- mToolbar.inflateMenu(R.menu.main_activity);
- mToolbar.setTitle(getString(R.string.app_name));
- mToolbar.setOnMenuItemClickListener(this);
+ setSupportActionBar(mToolbar);
+
+ mFAB.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ openNotificationCreationScreen();
+ }
+ });
+
+ if(getSupportFragmentManager().findFragmentById(R.id.main_menu_fragment_container) == null) {
+ getSupportFragmentManager().beginTransaction()
+ .add(R.id.main_menu_fragment_container, new NotificationListFragment())
+ .commit();
+ }
}
@Override
- public boolean onMenuItemClick(MenuItem item) {
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.main_activity, menu);
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.menu_settings) {
Intent intent = new Intent(this, PreferenceActivity.class);
startActivity(intent);
+ return true;
}
- return false;
+ return super.onOptionsItemSelected(item);
+ }
+
+
+ @SuppressWarnings("ConstantConditions")
+ void openNotificationCreationScreen() {
+ getSupportFragmentManager().beginTransaction()
+ .replace(R.id.main_menu_fragment_container, new NotificationCreationFragment())
+ .addToBackStack(NotificationCreationFragment.class.getSimpleName())
+ .commit();
+ mFAB.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onBackPressed() {
+ // make fab visible if we come back to first fragment
+ if(getSupportFragmentManager().getBackStackEntryCount() == 1)
+ mFAB.setVisibility(View.VISIBLE);
+ super.onBackPressed();
}
}
diff --git a/app/src/main/java/net/headlezz/notificationlogger/NotificationCreationFragment.java b/app/src/main/java/net/headlezz/notificationlogger/NotificationCreationFragment.java
new file mode 100644
index 0000000..024841f
--- /dev/null
+++ b/app/src/main/java/net/headlezz/notificationlogger/NotificationCreationFragment.java
@@ -0,0 +1,31 @@
+package net.headlezz.notificationlogger;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AppCompatActivity;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class NotificationCreationFragment extends Fragment {
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ TextView textView = new TextView(getContext());
+ textView.setGravity(Gravity.CENTER);
+ textView.setText(getClass().getSimpleName());
+ return textView;
+ }
+
+ @SuppressWarnings("ConstantConditions")
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ ((AppCompatActivity) activity).getSupportActionBar().setTitle(getString(R.string.title_create_notification));
+ }
+}
diff --git a/app/src/main/java/net/headlezz/notificationlogger/NotificationListFragment.java b/app/src/main/java/net/headlezz/notificationlogger/NotificationListFragment.java
new file mode 100644
index 0000000..31ced62
--- /dev/null
+++ b/app/src/main/java/net/headlezz/notificationlogger/NotificationListFragment.java
@@ -0,0 +1,31 @@
+package net.headlezz.notificationlogger;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AppCompatActivity;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class NotificationListFragment extends Fragment {
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ TextView textView = new TextView(getContext());
+ textView.setGravity(Gravity.CENTER);
+ textView.setText(getClass().getSimpleName());
+ return textView;
+ }
+
+ @SuppressWarnings("ConstantConditions")
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ ((AppCompatActivity) activity).getSupportActionBar().setTitle(getString(R.string.app_name));
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/ic_action_add.png b/app/src/main/res/drawable-hdpi/ic_action_add.png
new file mode 100644
index 0000000..ca13239
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_add.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_add.png b/app/src/main/res/drawable-mdpi/ic_action_add.png
new file mode 100644
index 0000000..06ff3a5
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_add.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_add.png b/app/src/main/res/drawable-xhdpi/ic_action_add.png
new file mode 100644
index 0000000..e5dd67b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_add.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_add.png b/app/src/main/res/drawable-xxhdpi/ic_action_add.png
new file mode 100644
index 0000000..ed6a26c
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_add.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_add.png b/app/src/main/res/drawable-xxxhdpi/ic_action_add.png
new file mode 100644
index 0000000..0d2d217
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_action_add.png differ
diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml
index 9a9d3dd..aa59ec8 100644
--- a/app/src/main/res/layout/main_activity.xml
+++ b/app/src/main/res/layout/main_activity.xml
@@ -1,8 +1,33 @@
-
-
+
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/toolbar.xml b/app/src/main/res/layout/toolbar.xml
index 0efc824..6ee75d9 100644
--- a/app/src/main/res/layout/toolbar.xml
+++ b/app/src/main/res/layout/toolbar.xml
@@ -7,4 +7,5 @@
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize" />
+ android:layout_height="?attr/actionBarSize"
+ app:layout_scrollFlags="scroll|enterAlways"/>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 52e58ae..dd48606 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,4 +13,6 @@
Remove all logged notifications
Export to sdcard
About
+ FAB: Create notification
+ Create notification