package com.zulip.android.networking; import android.content.Context; import android.content.Intent; import android.widget.Toast; import com.zulip.android.R; import com.zulip.android.ZulipApp; import com.zulip.android.activities.DevAuthActivity; import com.zulip.android.activities.LoginActivity; import com.zulip.android.util.ZLog; import org.json.JSONException; import org.json.JSONObject; /** * A background task which asynchronously fetches the Emails (Admins or Users) for the devAuthBackend * Mainly used Development builds. */ public class AsyncDevGetEmails extends ZulipAsyncPushTask { public final static String EMAIL_JSON = "emails_json"; private static final String DISABLED = "dev_disabled"; private Context context; public AsyncDevGetEmails(LoginActivity loginActivity) { super((ZulipApp) loginActivity.getApplication()); context = loginActivity; } public final void execute() { execute("GET", "v1/dev_get_emails"); } @Override protected void onPostExecute(String result) { try { JSONObject obj = new JSONObject(result); if (obj.getString("result").equals("success")) { Intent intent = new Intent(context, DevAuthActivity.class); intent.putExtra(EMAIL_JSON, result); context.startActivity(intent); ((LoginActivity) context).finish(); } } catch (JSONException e) { ZLog.logException(e); } } @Override protected void onCancelled(String result) { super.onCancelled(result); if (result == null) return; String message = context.getString(R.string.network_error); try { JSONObject obj = new JSONObject(result); message = obj.getString("msg"); } catch (JSONException e1) { ZLog.logException(e1); } final String finalMessage = message; ((LoginActivity) context).runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(context, finalMessage, Toast.LENGTH_LONG) .show(); } }); } }