mirror of
https://github.com/afollestad/nock-nock.git
synced 2025-04-20 19:45:17 +00:00
Began basic local storage logic of sites
This commit is contained in:
parent
adfb59b49c
commit
b2a6a46c62
3 changed files with 44 additions and 53 deletions
|
@ -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();
|
||||
|
|
|
@ -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?
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
<string name="about">About</string>
|
||||
<string name="about_body"><![CDATA[
|
||||
<b>Nock Nock</b>, a simple app designed by <b>Aidan Follestad</b>.<br/>
|
||||
<a href=\'http://aidanfollestad.com\'>Website</a>
|
||||
<a href=\'https://aidanfollestad.com\'>Website</a>
|
||||
<a href=\'https://twitter.com/afollestad\'>Twitter</a>
|
||||
<a href=\'https://google.com/+AidanFollestad\'>Google+</a>
|
||||
<a href=\'https://github.com/afollestad\'>GitHub</a>
|
||||
|
|
Loading…
Add table
Reference in a new issue