Refactoring

pull/72/head
M66B 7 years ago
parent 8c83cf3f96
commit cd8c1fabe6

@ -631,98 +631,112 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack
BroadcastReceiver receiver = new BroadcastReceiver() { BroadcastReceiver receiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (ACTION_VIEW_MESSAGES.equals(intent.getAction())) { if (ACTION_VIEW_MESSAGES.equals(intent.getAction()))
FragmentMessages fragment = new FragmentMessages(); onViewMessages(intent);
fragment.setArguments(intent.getExtras()); else if (ACTION_VIEW_MESSAGE.equals(intent.getAction()))
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); onViewMessage(intent);
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages"); else if (ACTION_EDIT_FOLDER.equals(intent.getAction()))
fragmentTransaction.commit(); onEditFolder(intent);
else if (ACTION_STORE_ATTACHMENT.equals(intent.getAction()))
} else if (ACTION_VIEW_MESSAGE.equals(intent.getAction())) { onStoreAttachment(intent);
else if (ACTION_ACTIVATE_PRO.equals(intent.getAction()))
onActivatePro(intent);
}
};
new SimpleTask<Void>() { private void onViewMessages(Intent intent) {
@Override FragmentMessages fragment = new FragmentMessages();
protected Void onLoad(Context context, Bundle args) { fragment.setArguments(intent.getExtras());
long id = args.getLong("id"); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages");
fragmentTransaction.commit();
}
DB db = DB.getInstance(context); private void onViewMessage(Intent intent) {
try { new SimpleTask<Void>() {
db.beginTransaction(); @Override
protected Void onLoad(Context context, Bundle args) {
long id = args.getLong("id");
EntityMessage message = db.message().getMessage(id); DB db = DB.getInstance(context);
for (EntityMessage tmessage : db.message().getMessageByThread(message.account, message.thread)) try {
if (message.uid != null) { // Skip drafts and outbox db.beginTransaction();
db.message().setMessageUiSeen(tmessage.id, true);
EntityOperation.queue(db, tmessage, EntityOperation.SEEN, true); EntityMessage message = db.message().getMessage(id);
} for (EntityMessage tmessage : db.message().getMessageByThread(message.account, message.thread))
if (message.uid != null) { // Skip drafts and outbox
db.message().setMessageUiSeen(tmessage.id, true);
db.setTransactionSuccessful(); EntityOperation.queue(db, tmessage, EntityOperation.SEEN, true);
} finally {
db.endTransaction();
} }
EntityOperation.process(context); db.setTransactionSuccessful();
} finally {
return null; db.endTransaction();
} }
@Override EntityOperation.process(context);
protected void onLoaded(Bundle args, Void result) {
FragmentMessage fragment = new FragmentMessage();
fragment.setArguments(args);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("message");
fragmentTransaction.commit();
}
@Override return null;
protected void onException(Bundle args, Throwable ex) { }
Toast.makeText(ActivityView.this, ex.toString(), Toast.LENGTH_LONG).show();
}
}.load(ActivityView.this, intent.getExtras());
} else if (ACTION_EDIT_FOLDER.equals(intent.getAction())) { @Override
FragmentFolder fragment = new FragmentFolder(); protected void onLoaded(Bundle args, Void result) {
fragment.setArguments(intent.getExtras()); FragmentMessage fragment = new FragmentMessage();
fragment.setArguments(args);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder"); fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("message");
fragmentTransaction.commit(); fragmentTransaction.commit();
}
} else if (ACTION_STORE_ATTACHMENT.equals(intent.getAction())) { @Override
Intent create = new Intent(Intent.ACTION_CREATE_DOCUMENT); protected void onException(Bundle args, Throwable ex) {
create.addCategory(Intent.CATEGORY_OPENABLE); Toast.makeText(ActivityView.this, ex.toString(), Toast.LENGTH_LONG).show();
create.setType(intent.getStringExtra("type")); }
create.putExtra(Intent.EXTRA_TITLE, intent.getStringExtra("name")); }.load(ActivityView.this, intent.getExtras());
startActivityForResult(create, (int) intent.getLongExtra("id", -1) + REQUEST_ATTACHMENT_OFFSET); }
} else if (ACTION_ACTIVATE_PRO.equals(intent.getAction())) { private void onEditFolder(Intent intent) {
try { FragmentFolder fragment = new FragmentFolder();
Uri data = intent.getParcelableExtra("uri"); fragment.setArguments(intent.getExtras());
String challenge = getChallenge(); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
String response = data.getQueryParameter("response"); fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("folder");
Log.i(Helper.TAG, "Challenge=" + challenge); fragmentTransaction.commit();
Log.i(Helper.TAG, "Response=" + response); }
String expected = getResponse();
if (expected.equals(response)) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityView.this);
prefs.edit().putBoolean("pro", true).apply();
Log.i(Helper.TAG, "Response valid");
Snackbar.make(view, R.string.title_pro_valid, Snackbar.LENGTH_LONG).show();
} else {
Log.i(Helper.TAG, "Response invalid");
Snackbar.make(view, R.string.title_pro_invalid, Snackbar.LENGTH_LONG).show();
}
intent.setData(null); private void onStoreAttachment(Intent intent) {
setIntent(intent); Intent create = new Intent(Intent.ACTION_CREATE_DOCUMENT);
} catch (NoSuchAlgorithmException ex) { create.addCategory(Intent.CATEGORY_OPENABLE);
Log.e(Helper.TAG, Log.getStackTraceString(ex)); create.setType(intent.getStringExtra("type"));
Toast.makeText(ActivityView.this, ex.getMessage(), Toast.LENGTH_LONG).show(); create.putExtra(Intent.EXTRA_TITLE, intent.getStringExtra("name"));
} startActivityForResult(create, (int) intent.getLongExtra("id", -1) + REQUEST_ATTACHMENT_OFFSET);
}
private void onActivatePro(Intent intent) {
try {
Uri data = intent.getParcelableExtra("uri");
String challenge = getChallenge();
String response = data.getQueryParameter("response");
Log.i(Helper.TAG, "Challenge=" + challenge);
Log.i(Helper.TAG, "Response=" + response);
String expected = getResponse();
if (expected.equals(response)) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityView.this);
prefs.edit().putBoolean("pro", true).apply();
Log.i(Helper.TAG, "Response valid");
Snackbar.make(view, R.string.title_pro_valid, Snackbar.LENGTH_LONG).show();
} else {
Log.i(Helper.TAG, "Response invalid");
Snackbar.make(view, R.string.title_pro_invalid, Snackbar.LENGTH_LONG).show();
} }
intent.setData(null);
setIntent(intent);
} catch (NoSuchAlgorithmException ex) {
Log.e(Helper.TAG, Log.getStackTraceString(ex));
Toast.makeText(ActivityView.this, ex.getMessage(), Toast.LENGTH_LONG).show();
} }
}; }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Loading…
Cancel
Save