diff --git a/app/src/main/java/com/afollestad/nocknock/ui/AddSiteActivity.java b/app/src/main/java/com/afollestad/nocknock/ui/AddSiteActivity.java index 8bce90b..92d8200 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/AddSiteActivity.java +++ b/app/src/main/java/com/afollestad/nocknock/ui/AddSiteActivity.java @@ -26,6 +26,7 @@ import com.afollestad.nocknock.api.ServerStatus; public class AddSiteActivity extends AppCompatActivity implements View.OnClickListener { private View rootLayout; + private Toolbar toolbar; private EditText inputName; private EditText inputUrl; @@ -44,9 +45,9 @@ public class AddSiteActivity extends AppCompatActivity implements View.OnClickLi inputInterval = (EditText) findViewById(R.id.checkIntervalInput); spinnerInterval = (Spinner) findViewById(R.id.checkIntervalSpinner); - final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setNavigationOnClickListener(view -> { - closeFromNavWithReveal(); + closeActivityWithReveal(); }); if (savedInstanceState == null) { @@ -72,38 +73,15 @@ public class AddSiteActivity extends AppCompatActivity implements View.OnClickLi @Override public void onBackPressed() { - closeFromCenterWithReveal(); + closeActivityWithReveal(); } - private void closeFromNavWithReveal() { + private void closeActivityWithReveal() { if (isClosing) return; isClosing = true; - final int offset = (int) getResources().getDimension(R.dimen.content_inset); - final int cx = rootLayout.getMeasuredWidth(); - final int cy = rootLayout.getMeasuredHeight(); - float initialRadius = Math.max(cx, cy); - - final Animator circularReveal = ViewAnimationUtils.createCircularReveal(rootLayout, offset, offset, initialRadius, 0); - circularReveal.setDuration(300); - circularReveal.setInterpolator(new AccelerateInterpolator()); - circularReveal.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - rootLayout.setVisibility(View.INVISIBLE); - finish(); - overridePendingTransition(0, 0); - } - }); - - circularReveal.start(); - } - - private void closeFromCenterWithReveal() { - if (isClosing) return; - isClosing = true; - final int cx = rootLayout.getMeasuredWidth() / 2; - final int cy = rootLayout.getMeasuredHeight() / 2; + final int fabSize = getIntent().getIntExtra("fab_size", toolbar.getMeasuredHeight()); + final int cx = (int) getIntent().getFloatExtra("fab_x", rootLayout.getMeasuredWidth() / 2) + (fabSize / 2); + final int cy = (int) getIntent().getFloatExtra("fab_y", rootLayout.getMeasuredHeight() / 2) + toolbar.getMeasuredHeight() + (fabSize / 2); float initialRadius = Math.max(cx, cy); final Animator circularReveal = ViewAnimationUtils.createCircularReveal(rootLayout, cx, cy, initialRadius, 0); @@ -139,7 +117,7 @@ public class AddSiteActivity extends AppCompatActivity implements View.OnClickLi @Override public void onClick(View view) { isClosing = true; - + ServerModel model = new ServerModel(); model.name = inputName.getText().toString().trim(); model.url = inputUrl.getText().toString().trim(); diff --git a/app/src/main/java/com/afollestad/nocknock/ui/MainActivity.java b/app/src/main/java/com/afollestad/nocknock/ui/MainActivity.java index 532b1e5..37ca7ac 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/MainActivity.java +++ b/app/src/main/java/com/afollestad/nocknock/ui/MainActivity.java @@ -18,15 +18,18 @@ import android.view.View; import android.view.animation.PathInterpolator; import android.widget.TextView; +import com.afollestad.inquiry.Inquiry; import com.afollestad.nocknock.R; import com.afollestad.nocknock.adapter.ServerAdapter; import com.afollestad.nocknock.api.ServerModel; -import com.afollestad.nocknock.api.ServerStatus; import com.afollestad.nocknock.dialogs.AboutDialog; import com.afollestad.nocknock.util.MathUtil; public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener, View.OnClickListener { + private final static int ADD_SITE_RQ = 6969; + private final static String SITES_TABLE_NAME = "sites"; + private FloatingActionButton mFab; private RecyclerView mList; private ServerAdapter mAdapter; @@ -57,25 +60,17 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou mFab = (FloatingActionButton) findViewById(R.id.fab); mFab.setOnClickListener(this); - ServerModel model = new ServerModel(); - model.name = "Personal Site"; - model.url = "https://aidanfollestad.com"; - model.id = 1; - model.status = ServerStatus.OK; - model.checkInterval = 1000 * 60; - model.lastCheck = System.currentTimeMillis(); - mAdapter.add(model); + Inquiry.init(this, "nocknock", 1); + Inquiry.get() + .selectFrom(SITES_TABLE_NAME, ServerModel.class) + .all(result -> mAdapter.set(result)); + } - model = new ServerModel(); - model.name = "Polar Request Manager"; - model.url = "https://polar.aidanfollestad.com"; - model.id = 2; - model.status = ServerStatus.CHECKING; - model.checkInterval = 1000 * 60 * 2; - model.lastCheck = System.currentTimeMillis(); - mAdapter.add(model); - - mEmptyText.setVisibility(View.GONE); + @Override + protected void onPause() { + super.onPause(); + if (isFinishing()) + Inquiry.deinit(); } @Override @@ -113,8 +108,11 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); - startActivity(new Intent(MainActivity.this, AddSiteActivity.class) - .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)); + startActivityForResult(new Intent(MainActivity.this, AddSiteActivity.class) + .putExtra("fab_x", mOrigFabX) + .putExtra("fab_y", mOrigFabY) + .putExtra("fab_size", mFab.getMeasuredWidth()) + .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION), ADD_SITE_RQ); mFab.postDelayed(() -> { mFab.setX(mOrigFabX); mFab.setY(mOrigFabY); @@ -123,4 +121,19 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou }); mFabAnimator.start(); } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + ServerModel model = (ServerModel) data.getSerializableExtra("model"); + mAdapter.add(model); + + Inquiry.get().insertInto(SITES_TABLE_NAME, ServerModel.class) + .values(model) + .run(changed -> { + //TODO? + }); + } + } } \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5690221..da2f378 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,7 +12,7 @@ About Nock Nock, a simple app designed by Aidan Follestad.
- Website   + Website   Twitter   Google+   GitHub