|
|
|
|
@@ -1,22 +1,25 @@
|
|
|
|
|
package net.headlezz.notificationlogger;
|
|
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
|
import android.support.annotation.Nullable;
|
|
|
|
|
import android.support.design.widget.FloatingActionButton;
|
|
|
|
|
import android.support.design.widget.Snackbar;
|
|
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
|
import android.support.v7.preference.PreferenceManager;
|
|
|
|
|
import android.support.v7.widget.Toolbar;
|
|
|
|
|
import android.view.Menu;
|
|
|
|
|
import android.view.MenuItem;
|
|
|
|
|
import android.view.View;
|
|
|
|
|
|
|
|
|
|
import net.headlezz.notificationlogger.createnotification.NotificationCreationFragment;
|
|
|
|
|
import net.headlezz.notificationlogger.presenter.LoggerWarningPresenter;
|
|
|
|
|
|
|
|
|
|
import butterknife.Bind;
|
|
|
|
|
import butterknife.ButterKnife;
|
|
|
|
|
import timber.log.Timber;
|
|
|
|
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
|
public class MainActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener, LoggerWarningPresenter.LoggerWarningView {
|
|
|
|
|
|
|
|
|
|
@Bind(R.id.toolbar)
|
|
|
|
|
Toolbar mToolbar;
|
|
|
|
|
@@ -24,14 +27,21 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
@Bind(R.id.main_menu_fab_add_notification)
|
|
|
|
|
FloatingActionButton mFAB;
|
|
|
|
|
|
|
|
|
|
SharedPreferences mSharedPrefs;
|
|
|
|
|
|
|
|
|
|
LoggerWarningPresenter mLoggerWarningPresenter;
|
|
|
|
|
Snackbar mLoggerWarningView;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
setContentView(R.layout.main_activity);
|
|
|
|
|
ButterKnife.bind(this);
|
|
|
|
|
|
|
|
|
|
setSupportActionBar(mToolbar);
|
|
|
|
|
|
|
|
|
|
mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
|
|
|
|
|
mLoggerWarningPresenter = new LoggerWarningPresenter(this);
|
|
|
|
|
|
|
|
|
|
mFAB.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
@@ -39,7 +49,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if(getSupportFragmentManager().findFragmentById(R.id.main_menu_fragment_container) == null) {
|
|
|
|
|
if (getSupportFragmentManager().findFragmentById(R.id.main_menu_fragment_container) == null) {
|
|
|
|
|
getSupportFragmentManager().beginTransaction()
|
|
|
|
|
.add(R.id.main_menu_fragment_container, new NotificationListFragment())
|
|
|
|
|
.commit();
|
|
|
|
|
@@ -53,6 +63,19 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
mFAB.setVisibility(View.GONE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onStart() {
|
|
|
|
|
super.onStart();
|
|
|
|
|
mSharedPrefs.registerOnSharedPreferenceChangeListener(this);
|
|
|
|
|
mLoggerWarningPresenter.setCurrentLoggerPreference(mSharedPrefs.getBoolean("pref_logging_enabled", true));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onStop() {
|
|
|
|
|
super.onStop();
|
|
|
|
|
mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
|
|
getMenuInflater().inflate(R.menu.main_activity, menu);
|
|
|
|
|
@@ -61,11 +84,11 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
|
if(item.getItemId() == R.id.menu_settings) {
|
|
|
|
|
if (item.getItemId() == R.id.menu_settings) {
|
|
|
|
|
Intent intent = new Intent(this, PreferenceActivity.class);
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
return true;
|
|
|
|
|
} else if(item.getItemId() == android.R.id.home) {
|
|
|
|
|
} else if (item.getItemId() == android.R.id.home) {
|
|
|
|
|
onBackPressed();
|
|
|
|
|
}
|
|
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
|
|
@@ -87,11 +110,48 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
@Override
|
|
|
|
|
public void onBackPressed() {
|
|
|
|
|
// make fab visible and change title if we come back to first fragment
|
|
|
|
|
if(getSupportFragmentManager().getBackStackEntryCount() == 1) {
|
|
|
|
|
if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
|
|
|
|
|
mFAB.setVisibility(View.VISIBLE);
|
|
|
|
|
getSupportActionBar().setTitle(getString(R.string.app_name));
|
|
|
|
|
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
|
|
|
|
}
|
|
|
|
|
super.onBackPressed();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
|
|
|
|
if (key.equals("pref_logging_enabled"))
|
|
|
|
|
mLoggerWarningPresenter.setCurrentLoggerPreference(sharedPreferences.getBoolean("pref_logging_enabled", true));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void showLoggerWarning() {
|
|
|
|
|
if (mLoggerWarningView == null) {
|
|
|
|
|
mLoggerWarningView = Snackbar.make(findViewById(R.id.viewholder), R.string.main_snack_logging_disabled_warning, Snackbar.LENGTH_INDEFINITE);
|
|
|
|
|
mLoggerWarningView.setAction(R.string.main_snack_logging_disabled_warning_action, new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
mSharedPrefs.edit().putBoolean("pref_logging_enabled", true).apply();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// fix for FAB not moving down after dismiss
|
|
|
|
|
mLoggerWarningView.getView().addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onViewAttachedToWindow(View v) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onViewDetachedFromWindow(View v) {
|
|
|
|
|
mFAB.setTranslationY(0);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
mLoggerWarningView.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void hideLoggerWarning() {
|
|
|
|
|
if (mLoggerWarningView != null && mLoggerWarningView.isShownOrQueued())
|
|
|
|
|
mLoggerWarningView.dismiss();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|