FAB and notification creation fragment
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
BIN
app/src/main/res/drawable-hdpi/ic_action_add.png
Normal file
BIN
app/src/main/res/drawable-hdpi/ic_action_add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 139 B |
BIN
app/src/main/res/drawable-mdpi/ic_action_add.png
Normal file
BIN
app/src/main/res/drawable-mdpi/ic_action_add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 121 B |
BIN
app/src/main/res/drawable-xhdpi/ic_action_add.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_action_add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 174 B |
BIN
app/src/main/res/drawable-xxhdpi/ic_action_add.png
Normal file
BIN
app/src/main/res/drawable-xxhdpi/ic_action_add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 246 B |
BIN
app/src/main/res/drawable-xxxhdpi/ic_action_add.png
Normal file
BIN
app/src/main/res/drawable-xxxhdpi/ic_action_add.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 477 B |
@@ -1,8 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<include layout="@layout/toolbar" />
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
</FrameLayout>
|
||||
<FrameLayout
|
||||
android:id="@+id/main_menu_fragment_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:contentDescription="@string/fab_cd_create_notification"
|
||||
android:layout_gravity="bottom|end|right"
|
||||
android:id="@+id/main_menu_fab_add_notification"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fabSize="normal"
|
||||
android:src="@drawable/ic_action_add"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
@@ -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"/>
|
||||
|
||||
@@ -13,4 +13,6 @@
|
||||
<string name="pref_clear_database_summary">Remove all logged notifications</string>
|
||||
<string name="pref_export_title">Export to sdcard</string>
|
||||
<string name="pref_about_title">About</string>
|
||||
<string name="fab_cd_create_notification">FAB: Create notification</string>
|
||||
<string name="title_create_notification">Create notification</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user