Merged in develop (pull request #9)
This commit is contained in:
commit
29904577e6
|
@ -7,8 +7,8 @@ android {
|
||||||
applicationId "fr.gouv.etalab.mastodon"
|
applicationId "fr.gouv.etalab.mastodon"
|
||||||
minSdkVersion 15
|
minSdkVersion 15
|
||||||
targetSdkVersion 25
|
targetSdkVersion 25
|
||||||
versionCode 11
|
versionCode 12
|
||||||
versionName "1.1.4"
|
versionName "1.1.5"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
package fr.gouv.etalab.mastodon.activities;
|
package fr.gouv.etalab.mastodon.activities;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -26,11 +27,13 @@ import android.view.View;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
|
@ -136,8 +139,17 @@ public class HashTagActivity extends AppCompatActivity implements OnRetrieveFeed
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveFeeds(List<Status> statuses) {
|
public void onRetrieveFeeds(List<Status> statuses, Error error) {
|
||||||
|
|
||||||
|
mainLoader.setVisibility(View.GONE);
|
||||||
|
nextElementLoader.setVisibility(View.GONE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( firstLoad && (statuses == null || statuses.size() == 0))
|
if( firstLoad && (statuses == null || statuses.size() == 0))
|
||||||
textviewNoAction.setVisibility(View.VISIBLE);
|
textviewNoAction.setVisibility(View.VISIBLE);
|
||||||
else
|
else
|
||||||
|
@ -146,9 +158,6 @@ public class HashTagActivity extends AppCompatActivity implements OnRetrieveFeed
|
||||||
max_id =statuses.get(statuses.size()-1).getId();
|
max_id =statuses.get(statuses.size()-1).getId();
|
||||||
else
|
else
|
||||||
max_id = null;
|
max_id = null;
|
||||||
mainLoader.setVisibility(View.GONE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if( statuses != null) {
|
if( statuses != null) {
|
||||||
for(Status tmpStatus: statuses){
|
for(Status tmpStatus: statuses){
|
||||||
this.statuses.add(tmpStatus);
|
this.statuses.add(tmpStatus);
|
||||||
|
|
|
@ -148,9 +148,8 @@ public class MainActivity extends AppCompatActivity
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean menuWasSelected = false;
|
|
||||||
mamageNewIntent(getIntent());
|
mamageNewIntent(getIntent());
|
||||||
if (savedInstanceState == null && !menuWasSelected) {
|
if (savedInstanceState == null) {
|
||||||
navigationView.setCheckedItem(R.id.nav_home);
|
navigationView.setCheckedItem(R.id.nav_home);
|
||||||
navigationView.getMenu().performIdentifierAction(R.id.nav_home, 0);
|
navigationView.getMenu().performIdentifierAction(R.id.nav_home, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
package fr.gouv.etalab.mastodon.activities;
|
package fr.gouv.etalab.mastodon.activities;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
|
@ -26,9 +28,11 @@ import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveSearchAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveSearchAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.drawers.SearchListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.SearchListAdapter;
|
||||||
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveSearchInterface;
|
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveSearchInterface;
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
|
|
||||||
|
@ -86,9 +90,15 @@ public class SearchResultActivity extends AppCompatActivity implements OnRetriev
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveSearch(Results results) {
|
public void onRetrieveSearch(Results results, Error error) {
|
||||||
|
|
||||||
loader.setVisibility(View.GONE);
|
loader.setVisibility(View.GONE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( results == null){
|
if( results == null){
|
||||||
RelativeLayout no_result = (RelativeLayout) findViewById(R.id.no_result);
|
RelativeLayout no_result = (RelativeLayout) findViewById(R.id.no_result);
|
||||||
no_result.setVisibility(View.VISIBLE);
|
no_result.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -54,6 +54,7 @@ import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveRelationshipAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveRelationshipAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
import fr.gouv.etalab.mastodon.client.API;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
||||||
import fr.gouv.etalab.mastodon.fragments.DisplayAccountsFragment;
|
import fr.gouv.etalab.mastodon.fragments.DisplayAccountsFragment;
|
||||||
|
@ -241,7 +242,14 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostAction(int statusCode,API.StatusAction statusAction, String targetedId) {
|
public void onPostAction(int statusCode,API.StatusAction statusAction, String targetedId, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
|
Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
|
||||||
new RetrieveRelationshipAsyncTask(getApplicationContext(), accountId,ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new RetrieveRelationshipAsyncTask(getApplicationContext(), accountId,ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
|
@ -258,7 +266,14 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveAccount(Account account) {
|
public void onRetrieveAccount(Account account, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
ImageView account_pp = (ImageView) findViewById(R.id.account_pp);
|
ImageView account_pp = (ImageView) findViewById(R.id.account_pp);
|
||||||
TextView account_dn = (TextView) findViewById(R.id.account_dn);
|
TextView account_dn = (TextView) findViewById(R.id.account_dn);
|
||||||
TextView account_un = (TextView) findViewById(R.id.account_un);
|
TextView account_un = (TextView) findViewById(R.id.account_un);
|
||||||
|
@ -301,7 +316,15 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveRelationship(Relationship relationship) {
|
public void onRetrieveRelationship(Relationship relationship, Error error) {
|
||||||
|
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( relationship.isBlocking()){
|
if( relationship.isBlocking()){
|
||||||
account_follow.setText(R.string.action_unblock);
|
account_follow.setText(R.string.action_unblock);
|
||||||
doAction = action.UNBLOCK;
|
doAction = action.UNBLOCK;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -30,6 +31,7 @@ import java.util.List;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveContextAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveContextAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Context;
|
import fr.gouv.etalab.mastodon.client.Entities.Context;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
|
@ -78,7 +80,14 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveFeeds(List<Status> statuses) {
|
public void onRetrieveFeeds(List<Status> statuses, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( statuses != null && statuses.size() > 0 ){
|
if( statuses != null && statuses.size() > 0 ){
|
||||||
initialStatus = statuses.get(0);
|
initialStatus = statuses.get(0);
|
||||||
new RetrieveContextAsyncTask(getApplicationContext(), initialStatus.getId(), ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new RetrieveContextAsyncTask(getApplicationContext(), initialStatus.getId(), ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
@ -86,7 +95,14 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveFeeds(Context context) {
|
public void onRetrieveFeeds(Context context, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
boolean isOnWifi = Helper.isOnWIFI(getApplicationContext());
|
boolean isOnWifi = Helper.isOnWIFI(getApplicationContext());
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||||
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
|
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
|
||||||
|
|
|
@ -64,6 +64,7 @@ import fr.gouv.etalab.mastodon.asynctasks.UploadActionAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
import fr.gouv.etalab.mastodon.client.API;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Attachment;
|
import fr.gouv.etalab.mastodon.client.Entities.Attachment;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.drawers.AccountsSearchAdapter;
|
import fr.gouv.etalab.mastodon.drawers.AccountsSearchAdapter;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
|
@ -350,9 +351,16 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
|
||||||
LocalBroadcastManager.getInstance(this).unregisterReceiver(search_validate);
|
LocalBroadcastManager.getInstance(this).unregisterReceiver(search_validate);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveAttachment(final Attachment attachment) {
|
public void onRetrieveAttachment(final Attachment attachment, Error error) {
|
||||||
loading_picture.setVisibility(View.GONE);
|
loading_picture.setVisibility(View.GONE);
|
||||||
toot_picture_container.setVisibility(View.VISIBLE);
|
toot_picture_container.setVisibility(View.VISIBLE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( attachment != null ){
|
if( attachment != null ){
|
||||||
String url = attachment.getPreview_url();
|
String url = attachment.getPreview_url();
|
||||||
if( url == null || url.trim().equals(""))
|
if( url == null || url.trim().equals(""))
|
||||||
|
@ -452,7 +460,14 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostAction(int statusCode, API.StatusAction statusAction, String userId) {
|
public void onPostAction(int statusCode, API.StatusAction statusAction, String userId, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( statusCode == 200){
|
if( statusCode == 200){
|
||||||
//Clear the toot
|
//Clear the toot
|
||||||
toot_content.setText("");
|
toot_content.setText("");
|
||||||
|
@ -476,7 +491,14 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveFeeds(List<Status> statuses) {
|
public void onRetrieveFeeds(List<Status> statuses, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( statuses != null && statuses.size() > 0 ){
|
if( statuses != null && statuses.size() > 0 ){
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
boolean show_reply = sharedpreferences.getBoolean(Helper.SET_SHOW_REPLY, false);
|
boolean show_reply = sharedpreferences.getBoolean(Helper.SET_SHOW_REPLY, false);
|
||||||
|
@ -517,7 +539,14 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveSearchAccounts(List<Account> accounts) {
|
public void onRetrieveSearchAccounts(List<Account> accounts, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( accounts != null && accounts.size() > 0){
|
if( accounts != null && accounts.size() > 0){
|
||||||
AccountsSearchAdapter accountsListAdapter = new AccountsSearchAdapter(TootActivity.this, accounts);
|
AccountsSearchAdapter accountsListAdapter = new AccountsSearchAdapter(TootActivity.this, accounts);
|
||||||
toot_lv_accounts.setAdapter(accountsListAdapter);
|
toot_lv_accounts.setAdapter(accountsListAdapter);
|
||||||
|
|
|
@ -39,6 +39,7 @@ public class PostActionAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String comment;
|
private String comment;
|
||||||
private Account account;
|
private Account account;
|
||||||
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public PostActionAsyncTask(Context context, API.StatusAction statusAction, String statusId, OnPostActionInterface onPostActionInterface){
|
public PostActionAsyncTask(Context context, API.StatusAction statusAction, String statusId, OnPostActionInterface onPostActionInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -59,18 +60,19 @@ public class PostActionAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
|
||||||
|
api = new API(context);
|
||||||
if(statusAction == API.StatusAction.REPORT)
|
if(statusAction == API.StatusAction.REPORT)
|
||||||
statusCode = new API(context).reportAction(status, comment);
|
statusCode = api.reportAction(status, comment);
|
||||||
else if(statusAction == API.StatusAction.CREATESTATUS)
|
else if(statusAction == API.StatusAction.CREATESTATUS)
|
||||||
statusCode = new API(context).statusAction(status);
|
statusCode = api.statusAction(status);
|
||||||
else
|
else
|
||||||
statusCode = new API(context).postAction(statusAction, statusId);
|
statusCode = api.postAction(statusAction, statusId);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onPostAction(statusCode, statusAction, statusId);
|
listener.onPostAction(statusCode, statusAction, statusId, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class RetrieveAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String targetedId;
|
private String targetedId;
|
||||||
private Account account;
|
private Account account;
|
||||||
private OnRetrieveAccountInterface listener;
|
private OnRetrieveAccountInterface listener;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveAccountAsyncTask(Context context, String targetedId, OnRetrieveAccountInterface onRetrieveAccountInterface){
|
public RetrieveAccountAsyncTask(Context context, String targetedId, OnRetrieveAccountInterface onRetrieveAccountInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -43,14 +43,14 @@ public class RetrieveAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
api = new API(context);
|
||||||
account = new API(context).getAccount(targetedId);
|
account = api.getAccount(targetedId);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveAccount(account);
|
listener.onRetrieveAccount(account, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ public class RetrieveAccountsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String max_id;
|
private String max_id;
|
||||||
private OnRetrieveAccountsInterface listener;
|
private OnRetrieveAccountsInterface listener;
|
||||||
private String targetedId;
|
private String targetedId;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public enum Type{
|
public enum Type{
|
||||||
BLOCKED,
|
BLOCKED,
|
||||||
|
@ -63,18 +64,19 @@ public class RetrieveAccountsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
|
||||||
|
api = new API(context);
|
||||||
switch (action){
|
switch (action){
|
||||||
case BLOCKED:
|
case BLOCKED:
|
||||||
accounts = new API(context).getBlocks(max_id);
|
accounts = api.getBlocks(max_id);
|
||||||
break;
|
break;
|
||||||
case MUTED:
|
case MUTED:
|
||||||
accounts = new API(context).getMuted(max_id);
|
accounts = api.getMuted(max_id);
|
||||||
break;
|
break;
|
||||||
case FOLLOWING:
|
case FOLLOWING:
|
||||||
accounts = new API(context).getFollowing(targetedId, max_id);
|
accounts = api.getFollowing(targetedId, max_id);
|
||||||
break;
|
break;
|
||||||
case FOLLOWERS:
|
case FOLLOWERS:
|
||||||
accounts = new API(context).getFollowers(targetedId, max_id);
|
accounts = api.getFollowers(targetedId, max_id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -82,7 +84,7 @@ public class RetrieveAccountsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveAccounts(accounts);
|
listener.onRetrieveAccounts(accounts, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String statusId;
|
private String statusId;
|
||||||
private fr.gouv.etalab.mastodon.client.Entities.Context statusContext;
|
private fr.gouv.etalab.mastodon.client.Entities.Context statusContext;
|
||||||
private OnRetrieveContextInterface listener;
|
private OnRetrieveContextInterface listener;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveContextAsyncTask(Context context, String statusId, OnRetrieveContextInterface onRetrieveContextInterface){
|
public RetrieveContextAsyncTask(Context context, String statusId, OnRetrieveContextInterface onRetrieveContextInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -41,13 +42,14 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
statusContext = new API(context).getStatusContext(statusId);
|
api = new API(context);
|
||||||
|
statusContext = api.getStatusContext(statusId);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveFeeds(statusContext);
|
listener.onRetrieveFeeds(statusContext, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
/* Copyright 2017 Thomas Schneider
|
|
||||||
*
|
|
||||||
* This file is a part of Mastodon Etalab for mastodon.etalab.gouv.fr
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
|
||||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Mastodon Etalab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
|
||||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along with Thomas Schneider; if not,
|
|
||||||
* see <http://www.gnu.org/licenses>. */
|
|
||||||
package fr.gouv.etalab.mastodon.asynctasks;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
|
||||||
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveFeedsAccountInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Thomas on 01/05/2017.
|
|
||||||
* Retrieves toots for an account
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class RetrieveFeedsAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
|
||||||
|
|
||||||
private Context context;
|
|
||||||
private String accountId;
|
|
||||||
private List<fr.gouv.etalab.mastodon.client.Entities.Status> statuses;
|
|
||||||
private OnRetrieveFeedsAccountInterface listener;
|
|
||||||
|
|
||||||
|
|
||||||
public RetrieveFeedsAccountAsyncTask(Context context, String accountId, OnRetrieveFeedsAccountInterface onRetrieveFeedsAccountInterface){
|
|
||||||
this.context = context;
|
|
||||||
this.listener = onRetrieveFeedsAccountInterface;
|
|
||||||
this.accountId = accountId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... params) {
|
|
||||||
|
|
||||||
statuses = new API(context).getStatus(accountId);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void result) {
|
|
||||||
listener.onRetrieveFeedsAccount(statuses);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -40,6 +40,7 @@ public class RetrieveFeedsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String targetedID;
|
private String targetedID;
|
||||||
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
||||||
private String tag;
|
private String tag;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public enum Type{
|
public enum Type{
|
||||||
HOME,
|
HOME,
|
||||||
|
@ -78,27 +79,28 @@ public class RetrieveFeedsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
|
||||||
|
api = new API(context);
|
||||||
switch (action){
|
switch (action){
|
||||||
case HOME:
|
case HOME:
|
||||||
statuses = new API(context).getHomeTimeline(max_id);
|
statuses = api.getHomeTimeline(max_id);
|
||||||
break;
|
break;
|
||||||
case LOCAL:
|
case LOCAL:
|
||||||
statuses = new API(context).getPublicTimeline(true, max_id);
|
statuses = api.getPublicTimeline(true, max_id);
|
||||||
break;
|
break;
|
||||||
case PUBLIC:
|
case PUBLIC:
|
||||||
statuses = new API(context).getPublicTimeline(false, max_id);
|
statuses = api.getPublicTimeline(false, max_id);
|
||||||
break;
|
break;
|
||||||
case FAVOURITES:
|
case FAVOURITES:
|
||||||
statuses = new API(context).getFavourites(max_id);
|
statuses = api.getFavourites(max_id);
|
||||||
break;
|
break;
|
||||||
case USER:
|
case USER:
|
||||||
statuses = new API(context).getStatus(targetedID, max_id);
|
statuses = api.getStatus(targetedID, max_id);
|
||||||
break;
|
break;
|
||||||
case ONESTATUS:
|
case ONESTATUS:
|
||||||
statuses = new API(context).getStatusbyId(targetedID);
|
statuses = api.getStatusbyId(targetedID);
|
||||||
break;
|
break;
|
||||||
case TAG:
|
case TAG:
|
||||||
statuses = new API(context).getPublicTimelineTag(tag, false, max_id);
|
statuses = api.getPublicTimelineTag(tag, false, max_id);
|
||||||
break;
|
break;
|
||||||
case HASHTAG:
|
case HASHTAG:
|
||||||
break;
|
break;
|
||||||
|
@ -108,7 +110,7 @@ public class RetrieveFeedsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveFeeds(statuses);
|
listener.onRetrieveFeeds(statuses, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class RetrieveHomeTimelineServiceAsyncTask extends AsyncTask<Void, Void,
|
||||||
private OnRetrieveHomeTimelineServiceInterface listener;
|
private OnRetrieveHomeTimelineServiceInterface listener;
|
||||||
private String instance;
|
private String instance;
|
||||||
private String token;
|
private String token;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveHomeTimelineServiceAsyncTask(Context context, String instance, String token, String since_id, String acct, String userId, OnRetrieveHomeTimelineServiceInterface onRetrieveHomeTimelineServiceInterface){
|
public RetrieveHomeTimelineServiceAsyncTask(Context context, String instance, String token, String since_id, String acct, String userId, OnRetrieveHomeTimelineServiceInterface onRetrieveHomeTimelineServiceInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -49,13 +50,14 @@ public class RetrieveHomeTimelineServiceAsyncTask extends AsyncTask<Void, Void,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
statuses = new API(context, instance, token).getHomeTimelineSinceId(since_id);
|
api = new API(context, instance, token);
|
||||||
|
statuses = api.getHomeTimelineSinceId(since_id);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveHomeTimelineService(statuses, acct, userId);
|
listener.onRetrieveHomeTimelineService(statuses, acct, userId, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class RetrieveNotificationsAsyncTask extends AsyncTask<Void, Void, Void>
|
||||||
private OnRetrieveNotificationsInterface listener;
|
private OnRetrieveNotificationsInterface listener;
|
||||||
private String instance;
|
private String instance;
|
||||||
private String token;
|
private String token;
|
||||||
|
private API api;
|
||||||
|
|
||||||
|
|
||||||
public RetrieveNotificationsAsyncTask(Context context, String instance, String token, String max_id, String acct, String userId, OnRetrieveNotificationsInterface onRetrieveNotificationsInterface){
|
public RetrieveNotificationsAsyncTask(Context context, String instance, String token, String max_id, String acct, String userId, OnRetrieveNotificationsInterface onRetrieveNotificationsInterface){
|
||||||
|
@ -54,16 +54,18 @@ public class RetrieveNotificationsAsyncTask extends AsyncTask<Void, Void, Void>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
|
||||||
|
api = new API(context, instance, token);
|
||||||
if( acct == null)
|
if( acct == null)
|
||||||
notifications = new API(context, instance, token).getNotifications(max_id);
|
notifications = api.getNotifications(max_id);
|
||||||
else
|
else
|
||||||
notifications = new API(context, instance, token).getNotificationsSince(max_id);
|
notifications = api.getNotificationsSince(max_id);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveNotifications(notifications, acct, userId);
|
listener.onRetrieveNotifications(notifications, acct, userId, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class RetrieveRelationshipAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String accountId;
|
private String accountId;
|
||||||
private Relationship relationship;
|
private Relationship relationship;
|
||||||
private OnRetrieveRelationshipInterface listener;
|
private OnRetrieveRelationshipInterface listener;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveRelationshipAsyncTask(Context context, String accountId, OnRetrieveRelationshipInterface onRetrieveRelationshipInterface){
|
public RetrieveRelationshipAsyncTask(Context context, String accountId, OnRetrieveRelationshipInterface onRetrieveRelationshipInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -43,13 +43,14 @@ public class RetrieveRelationshipAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
|
||||||
relationship = new API(context).getRelationship(accountId);
|
api = new API(context);
|
||||||
|
relationship = api.getRelationship(accountId);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveRelationship(relationship);
|
listener.onRetrieveRelationship(relationship, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class RetrieveSearchAccountsAsyncTask extends AsyncTask<Void, Void, Void>
|
||||||
private String query;
|
private String query;
|
||||||
private List<Account> accounts;
|
private List<Account> accounts;
|
||||||
private OnRetrieveSearcAccountshInterface listener;
|
private OnRetrieveSearcAccountshInterface listener;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveSearchAccountsAsyncTask(Context context, String query, OnRetrieveSearcAccountshInterface onRetrieveSearcAccountshInterface){
|
public RetrieveSearchAccountsAsyncTask(Context context, String query, OnRetrieveSearcAccountshInterface onRetrieveSearcAccountshInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -46,14 +46,14 @@ public class RetrieveSearchAccountsAsyncTask extends AsyncTask<Void, Void, Void>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
api = new API(context);
|
||||||
accounts = new API(context).searchAccounts(query);
|
accounts = api.searchAccounts(query);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveSearchAccounts(accounts);
|
listener.onRetrieveSearchAccounts(accounts, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class RetrieveSearchAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private String query;
|
private String query;
|
||||||
private Results results;
|
private Results results;
|
||||||
private OnRetrieveSearchInterface listener;
|
private OnRetrieveSearchInterface listener;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public RetrieveSearchAsyncTask(Context context, String query, OnRetrieveSearchInterface onRetrieveSearchInterface){
|
public RetrieveSearchAsyncTask(Context context, String query, OnRetrieveSearchInterface onRetrieveSearchInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -44,14 +44,14 @@ public class RetrieveSearchAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
api = new API(context);
|
||||||
results = new API(context).search(query);
|
results = api.search(query);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveSearch(results);
|
listener.onRetrieveSearch(results, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class UploadActionAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private Attachment attachment;
|
private Attachment attachment;
|
||||||
private InputStream inputStream;
|
private InputStream inputStream;
|
||||||
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
private fr.gouv.etalab.mastodon.client.Entities.Status status;
|
||||||
|
private API api;
|
||||||
|
|
||||||
public UploadActionAsyncTask(Context context, InputStream inputStream, OnRetrieveAttachmentInterface onRetrieveAttachmentInterface){
|
public UploadActionAsyncTask(Context context, InputStream inputStream, OnRetrieveAttachmentInterface onRetrieveAttachmentInterface){
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
@ -45,14 +46,14 @@ public class UploadActionAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
|
api = new API(context);
|
||||||
attachment = new API(context).uploadMedia(inputStream);
|
attachment = api.uploadMedia(inputStream);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
listener.onRetrieveAttachment(attachment);
|
listener.onRetrieveAttachment(attachment, api.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ package fr.gouv.etalab.mastodon.client;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.util.Log;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.loopj.android.http.AsyncHttpResponseHandler;
|
import com.loopj.android.http.AsyncHttpResponseHandler;
|
||||||
|
@ -38,14 +37,9 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cz.msebera.android.httpclient.Header;
|
import cz.msebera.android.httpclient.Header;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
import fr.gouv.etalab.mastodon.client.Entities.*;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Application;
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Attachment;
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Notification;
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Relationship;
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
|
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.USER_AGENT;
|
import static fr.gouv.etalab.mastodon.helper.Helper.USER_AGENT;
|
||||||
|
@ -76,6 +70,7 @@ public class API {
|
||||||
private int actionCode;
|
private int actionCode;
|
||||||
private String instance;
|
private String instance;
|
||||||
private String prefKeyOauthTokenT;
|
private String prefKeyOauthTokenT;
|
||||||
|
private Error errorApi = null;
|
||||||
|
|
||||||
public enum StatusAction{
|
public enum StatusAction{
|
||||||
FAVOURITE,
|
FAVOURITE,
|
||||||
|
@ -127,7 +122,6 @@ public class API {
|
||||||
* @return Account
|
* @return Account
|
||||||
*/
|
*/
|
||||||
public Account verifyCredentials() {
|
public Account verifyCredentials() {
|
||||||
|
|
||||||
account = new Account();
|
account = new Account();
|
||||||
get("/accounts/verify_credentials", null, new JsonHttpResponseHandler() {
|
get("/accounts/verify_credentials", null, new JsonHttpResponseHandler() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -144,7 +138,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return account;
|
return account;
|
||||||
|
@ -173,7 +167,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return account;
|
return account;
|
||||||
|
@ -205,7 +199,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return relationship;
|
return relationship;
|
||||||
|
@ -272,6 +266,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -298,7 +293,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -319,7 +314,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statusContext;
|
return statusContext;
|
||||||
|
@ -375,7 +370,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -425,7 +420,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -477,7 +472,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -554,7 +549,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return accounts;
|
return accounts;
|
||||||
|
@ -600,7 +595,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return statuses;
|
return statuses;
|
||||||
|
@ -721,6 +716,7 @@ public class API {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response) {
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response) {
|
||||||
actionCode = statusCode;
|
actionCode = statusCode;
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
|
@ -739,6 +735,7 @@ public class API {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response) {
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response) {
|
||||||
actionCode = statusCode;
|
actionCode = statusCode;
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -795,7 +792,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
error.printStackTrace();
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return notifications;
|
return notifications;
|
||||||
|
@ -822,6 +819,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return attachment;
|
return attachment;
|
||||||
|
@ -846,7 +844,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return results;
|
return results;
|
||||||
|
@ -879,7 +877,7 @@ public class API {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
public void onFailure(int statusCode, Header[] headers, Throwable error, JSONObject response){
|
||||||
|
setError(statusCode, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return accounts;
|
return accounts;
|
||||||
|
@ -1224,8 +1222,8 @@ public class API {
|
||||||
* @param error Throwable error
|
* @param error Throwable error
|
||||||
*/
|
*/
|
||||||
private void setError(int statusCode, Throwable error){
|
private void setError(int statusCode, Throwable error){
|
||||||
fr.gouv.etalab.mastodon.client.Entities.Error errorResponse = new fr.gouv.etalab.mastodon.client.Entities.Error();
|
errorApi = new Error();
|
||||||
errorResponse.setError(statusCode + " - " + error.getMessage());
|
errorApi.setError(statusCode + " - " + error.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1270,6 +1268,10 @@ public class API {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Error getError(){
|
||||||
|
return errorApi;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getAbsoluteUrl(String action) {
|
private String getAbsoluteUrl(String action) {
|
||||||
return "https://" + this.instance + "/api/v1" + action;
|
return "https://" + this.instance + "/api/v1" + action;
|
||||||
|
|
|
@ -16,11 +16,12 @@ package fr.gouv.etalab.mastodon.client.Entities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 23/04/2017.
|
* Created by Thomas on 23/04/2017.
|
||||||
|
* Manage errors
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Error {
|
public class Error {
|
||||||
|
|
||||||
private String error;
|
private String error = null;
|
||||||
|
|
||||||
public String getError() {
|
public String getError() {
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -18,6 +18,7 @@ import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -31,6 +32,8 @@ import android.widget.BaseAdapter;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
|
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
|
||||||
|
@ -41,6 +44,7 @@ import java.util.List;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveAccountsAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveAccountsAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
import fr.gouv.etalab.mastodon.client.API;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
|
import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
|
@ -180,7 +184,14 @@ public class AccountsListAdapter extends BaseAdapter implements OnPostActionInte
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostAction(int statusCode, API.StatusAction statusAction, String targetedId) {
|
public void onPostAction(int statusCode, API.StatusAction statusAction, String targetedId, Error error) {
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(context, error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Helper.manageMessageStatusCode(context, statusCode, statusAction);
|
Helper.manageMessageStatusCode(context, statusCode, statusAction);
|
||||||
//When unmuting or unblocking an account, it is removed from the list
|
//When unmuting or unblocking an account, it is removed from the list
|
||||||
List<Account> accountsToRemove = new ArrayList<>();
|
List<Account> accountsToRemove = new ArrayList<>();
|
||||||
|
|
|
@ -44,6 +44,7 @@ import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
import android.widget.VideoView;
|
import android.widget.VideoView;
|
||||||
|
|
||||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||||
|
@ -58,6 +59,7 @@ import java.util.List;
|
||||||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
import fr.gouv.etalab.mastodon.activities.ShowConversationActivity;
|
import fr.gouv.etalab.mastodon.activities.ShowConversationActivity;
|
||||||
import fr.gouv.etalab.mastodon.activities.TootActivity;
|
import fr.gouv.etalab.mastodon.activities.TootActivity;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
import fr.gouv.etalab.mastodon.activities.ShowAccountActivity;
|
import fr.gouv.etalab.mastodon.activities.ShowAccountActivity;
|
||||||
|
@ -522,7 +524,15 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostAction(int statusCode,API.StatusAction statusAction, String targetedId) {
|
public void onPostAction(int statusCode, API.StatusAction statusAction, String targetedId, Error error) {
|
||||||
|
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(context, error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Helper.manageMessageStatusCode(context, statusCode, statusAction);
|
Helper.manageMessageStatusCode(context, statusCode, statusAction);
|
||||||
//When muting or blocking an account, its status are removed from the list
|
//When muting or blocking an account, its status are removed from the list
|
||||||
List<Status> statusesToRemove = new ArrayList<>();
|
List<Status> statusesToRemove = new ArrayList<>();
|
||||||
|
|
|
@ -30,11 +30,13 @@ import android.widget.AbsListView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveAccountsAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveAccountsAsyncTask;
|
||||||
|
@ -139,7 +141,12 @@ public class DisplayAccountsFragment extends Fragment implements OnRetrieveAccou
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
||||||
if (view.getId() == lv_accounts.getId() && totalItemCount > visibleItemCount) {
|
|
||||||
|
if( firstVisibleItem == 0) {
|
||||||
|
Intent intent = new Intent(Helper.HEADER_ACCOUNT);
|
||||||
|
intent.putExtra("hide", false);
|
||||||
|
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
|
||||||
|
}else if (view.getId() == lv_accounts.getId() && totalItemCount > visibleItemCount) {
|
||||||
final int currentFirstVisibleItem = lv_accounts.getFirstVisiblePosition();
|
final int currentFirstVisibleItem = lv_accounts.getFirstVisiblePosition();
|
||||||
|
|
||||||
if (currentFirstVisibleItem > lastFirstVisibleItem) {
|
if (currentFirstVisibleItem > lastFirstVisibleItem) {
|
||||||
|
@ -213,8 +220,17 @@ public class DisplayAccountsFragment extends Fragment implements OnRetrieveAccou
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveAccounts(List<Account> accounts) {
|
public void onRetrieveAccounts(List<Account> accounts, Error error) {
|
||||||
|
|
||||||
|
mainLoader.setVisibility(View.GONE);
|
||||||
|
nextElementLoader.setVisibility(View.GONE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( firstLoad && (accounts == null || accounts.size() == 0))
|
if( firstLoad && (accounts == null || accounts.size() == 0))
|
||||||
textviewNoAction.setVisibility(View.VISIBLE);
|
textviewNoAction.setVisibility(View.VISIBLE);
|
||||||
else
|
else
|
||||||
|
@ -223,8 +239,6 @@ public class DisplayAccountsFragment extends Fragment implements OnRetrieveAccou
|
||||||
max_id =accounts.get(accounts.size()-1).getId();
|
max_id =accounts.get(accounts.size()-1).getId();
|
||||||
else
|
else
|
||||||
max_id = null;
|
max_id = null;
|
||||||
mainLoader.setVisibility(View.GONE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if( accounts != null) {
|
if( accounts != null) {
|
||||||
for(Account tmpAccount: accounts){
|
for(Account tmpAccount: accounts){
|
||||||
|
|
|
@ -26,11 +26,13 @@ import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.drawers.NotificationsListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.NotificationsListAdapter;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
||||||
|
@ -145,8 +147,17 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveNotifications(List<Notification> notifications, String acct, String userId) {
|
public void onRetrieveNotifications(List<Notification> notifications, String acct, String userId, Error error) {
|
||||||
|
|
||||||
|
mainLoader.setVisibility(View.GONE);
|
||||||
|
nextElementLoader.setVisibility(View.GONE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( firstLoad && (notifications == null || notifications.size() == 0))
|
if( firstLoad && (notifications == null || notifications.size() == 0))
|
||||||
textviewNoAction.setVisibility(View.VISIBLE);
|
textviewNoAction.setVisibility(View.VISIBLE);
|
||||||
else
|
else
|
||||||
|
@ -155,8 +166,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
max_id =notifications.get(notifications.size()-1).getId();
|
max_id =notifications.get(notifications.size()-1).getId();
|
||||||
else
|
else
|
||||||
max_id = null;
|
max_id = null;
|
||||||
mainLoader.setVisibility(View.GONE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if( notifications != null) {
|
if( notifications != null) {
|
||||||
for(Notification tmpNotification: notifications){
|
for(Notification tmpNotification: notifications){
|
||||||
|
|
|
@ -29,6 +29,7 @@ import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -36,6 +37,7 @@ import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
||||||
|
@ -145,7 +147,11 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
||||||
if (view.getId() == lv_status.getId() && totalItemCount > visibleItemCount) {
|
if( firstVisibleItem == 0) {
|
||||||
|
Intent intent = new Intent(Helper.HEADER_ACCOUNT);
|
||||||
|
intent.putExtra("hide", false);
|
||||||
|
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
|
||||||
|
}else if (view.getId() == lv_status.getId() && totalItemCount > visibleItemCount) {
|
||||||
final int currentFirstVisibleItem = lv_status.getFirstVisiblePosition();
|
final int currentFirstVisibleItem = lv_status.getFirstVisiblePosition();
|
||||||
|
|
||||||
if (currentFirstVisibleItem > lastFirstVisibleItem) {
|
if (currentFirstVisibleItem > lastFirstVisibleItem) {
|
||||||
|
@ -226,7 +232,17 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveFeeds(List<Status> statuses) {
|
public void onRetrieveFeeds(List<Status> statuses, Error error) {
|
||||||
|
|
||||||
|
mainLoader.setVisibility(View.GONE);
|
||||||
|
nextElementLoader.setVisibility(View.GONE);
|
||||||
|
if( error != null){
|
||||||
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
|
if( show_error_messages)
|
||||||
|
Toast.makeText(getContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( firstLoad && (statuses == null || statuses.size() == 0))
|
if( firstLoad && (statuses == null || statuses.size() == 0))
|
||||||
textviewNoAction.setVisibility(View.VISIBLE);
|
textviewNoAction.setVisibility(View.VISIBLE);
|
||||||
else
|
else
|
||||||
|
@ -235,8 +251,6 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
max_id =statuses.get(statuses.size()-1).getId();
|
max_id =statuses.get(statuses.size()-1).getId();
|
||||||
else
|
else
|
||||||
max_id = null;
|
max_id = null;
|
||||||
mainLoader.setVisibility(View.GONE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if( statuses != null) {
|
if( statuses != null) {
|
||||||
for(Status tmpStatus: statuses){
|
for(Status tmpStatus: statuses){
|
||||||
|
|
|
@ -52,6 +52,7 @@ public class SettingsNotificationsFragment extends Fragment {
|
||||||
boolean notif_validation = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION, true);
|
boolean notif_validation = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION, true);
|
||||||
boolean notif_wifi = sharedpreferences.getBoolean(Helper.SET_WIFI_ONLY, false);
|
boolean notif_wifi = sharedpreferences.getBoolean(Helper.SET_WIFI_ONLY, false);
|
||||||
boolean notif_silent = sharedpreferences.getBoolean(Helper.SET_NOTIF_SILENT, false);
|
boolean notif_silent = sharedpreferences.getBoolean(Helper.SET_NOTIF_SILENT, false);
|
||||||
|
boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true);
|
||||||
boolean notif_hometimeline = sharedpreferences.getBoolean(Helper.SET_NOTIF_HOMETIMELINE, true);
|
boolean notif_hometimeline = sharedpreferences.getBoolean(Helper.SET_NOTIF_HOMETIMELINE, true);
|
||||||
|
|
||||||
final CheckBox set_notif_follow = (CheckBox) rootView.findViewById(R.id.set_notif_follow);
|
final CheckBox set_notif_follow = (CheckBox) rootView.findViewById(R.id.set_notif_follow);
|
||||||
|
@ -61,6 +62,7 @@ public class SettingsNotificationsFragment extends Fragment {
|
||||||
final CheckBox set_notif_follow_share = (CheckBox) rootView.findViewById(R.id.set_notif_follow_share);
|
final CheckBox set_notif_follow_share = (CheckBox) rootView.findViewById(R.id.set_notif_follow_share);
|
||||||
final CheckBox set_share_validation = (CheckBox) rootView.findViewById(R.id.set_share_validation);
|
final CheckBox set_share_validation = (CheckBox) rootView.findViewById(R.id.set_share_validation);
|
||||||
final CheckBox set_notif_hometimeline = (CheckBox) rootView.findViewById(R.id.set_notif_hometimeline);
|
final CheckBox set_notif_hometimeline = (CheckBox) rootView.findViewById(R.id.set_notif_hometimeline);
|
||||||
|
final CheckBox set_show_error_messages = (CheckBox) rootView.findViewById(R.id.set_show_error_messages);
|
||||||
final SwitchCompat switchCompatWIFI = (SwitchCompat) rootView.findViewById(R.id.set_wifi_only);
|
final SwitchCompat switchCompatWIFI = (SwitchCompat) rootView.findViewById(R.id.set_wifi_only);
|
||||||
final SwitchCompat switchCompatSilent = (SwitchCompat) rootView.findViewById(R.id.set_silence);
|
final SwitchCompat switchCompatSilent = (SwitchCompat) rootView.findViewById(R.id.set_silence);
|
||||||
|
|
||||||
|
@ -71,6 +73,7 @@ public class SettingsNotificationsFragment extends Fragment {
|
||||||
set_notif_follow_share.setChecked(notif_share);
|
set_notif_follow_share.setChecked(notif_share);
|
||||||
set_share_validation.setChecked(notif_validation);
|
set_share_validation.setChecked(notif_validation);
|
||||||
set_notif_hometimeline.setChecked(notif_hometimeline);
|
set_notif_hometimeline.setChecked(notif_hometimeline);
|
||||||
|
set_show_error_messages.setChecked(show_error_messages);
|
||||||
switchCompatWIFI.setChecked(notif_wifi);
|
switchCompatWIFI.setChecked(notif_wifi);
|
||||||
switchCompatSilent.setChecked(notif_silent);
|
switchCompatSilent.setChecked(notif_silent);
|
||||||
|
|
||||||
|
@ -130,6 +133,14 @@ public class SettingsNotificationsFragment extends Fragment {
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
set_show_error_messages.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
editor.putBoolean(Helper.SET_SHOW_ERROR_MESSAGES, set_show_error_messages.isChecked());
|
||||||
|
editor.apply();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
switchCompatWIFI.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
switchCompatWIFI.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,26 +29,21 @@ import android.content.res.Resources;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.support.design.widget.NavigationView;
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
import android.support.v4.app.NotificationManagerCompat;
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
@ -56,7 +51,6 @@ import com.loopj.android.http.BuildConfig;
|
||||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
import com.nostra13.universalimageloader.core.assist.FailReason;
|
import com.nostra13.universalimageloader.core.assist.FailReason;
|
||||||
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
|
|
||||||
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
|
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
|
||||||
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
|
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
|
||||||
|
|
||||||
|
@ -64,14 +58,12 @@ import java.io.File;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.activities.LoginActivity;
|
import fr.gouv.etalab.mastodon.activities.LoginActivity;
|
||||||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RemoveAccountAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RemoveAccountAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
|
||||||
|
@ -93,9 +85,8 @@ import static android.content.Context.DOWNLOAD_SERVICE;
|
||||||
public class Helper {
|
public class Helper {
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static final String TAG = "mastodon_etalab";
|
public static final String TAG = "mastodon_etalab";
|
||||||
//Connection with API
|
|
||||||
public static final String OAUTH_SCHEME = "oauth2redirect";
|
|
||||||
public static final String OAUTH_REDIRECT_HOST = "fr.gouv.etalab.mastodon";
|
public static final String OAUTH_REDIRECT_HOST = "fr.gouv.etalab.mastodon";
|
||||||
public static final String INSTANCE = "mastodon.etalab.gouv.fr";
|
public static final String INSTANCE = "mastodon.etalab.gouv.fr";
|
||||||
public static final String OAUTH_SCOPES = "read write follow";
|
public static final String OAUTH_SCOPES = "read write follow";
|
||||||
|
@ -143,6 +134,7 @@ public class Helper {
|
||||||
public static final String SET_NOTIF_HOMETIMELINE = "set_notif_hometimeline";
|
public static final String SET_NOTIF_HOMETIMELINE = "set_notif_hometimeline";
|
||||||
public static final String SET_NOTIF_SILENT = "set_notif_silent";
|
public static final String SET_NOTIF_SILENT = "set_notif_silent";
|
||||||
public static final String SET_SHOW_REPLY = "set_show_reply";
|
public static final String SET_SHOW_REPLY = "set_show_reply";
|
||||||
|
public static final String SET_SHOW_ERROR_MESSAGES = "set_show_error_messages";
|
||||||
//End points
|
//End points
|
||||||
public static final String EP_AUTHORIZE = "/oauth/authorize";
|
public static final String EP_AUTHORIZE = "/oauth/authorize";
|
||||||
|
|
||||||
|
@ -162,12 +154,13 @@ public class Helper {
|
||||||
public static final String USER_AGENT = "Mastalab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE;
|
public static final String USER_AGENT = "Mastalab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE;
|
||||||
|
|
||||||
|
|
||||||
public static boolean menuAccountsOpened = false;
|
private static boolean menuAccountsOpened = false;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* Check if the user is connected to Internet
|
* Check if the user is connected to Internet
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static boolean isConnectedToInternet(Context context) {
|
public static boolean isConnectedToInternet(Context context) {
|
||||||
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo ni = cm.getActiveNetworkInfo();
|
NetworkInfo ni = cm.getActiveNetworkInfo();
|
||||||
|
@ -613,7 +606,8 @@ public class Helper {
|
||||||
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
|
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
|
||||||
imageLoader = ImageLoader.getInstance();
|
imageLoader = ImageLoader.getInstance();
|
||||||
NavigationView navigationView = (NavigationView) activity.findViewById(R.id.nav_view);
|
NavigationView navigationView = (NavigationView) activity.findViewById(R.id.nav_view);
|
||||||
updateHeaderAccountInfo(activity, account, navigationView, imageLoader, options);
|
View headerLayout = navigationView.getHeaderView(0);
|
||||||
|
updateHeaderAccountInfo(activity, account, headerLayout, imageLoader, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,12 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.API;
|
import fr.gouv.etalab.mastodon.client.API;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 29/04/2017.
|
* Created by Thomas on 29/04/2017.
|
||||||
* Interface when post actions has been done with a status
|
* Interface when post actions has been done with a status
|
||||||
*/
|
*/
|
||||||
public interface OnPostActionInterface {
|
public interface OnPostActionInterface {
|
||||||
void onPostAction(int statusCode, API.StatusAction statusAction, String userId);
|
void onPostAction(int statusCode, API.StatusAction statusAction, String userId, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,12 @@
|
||||||
package fr.gouv.etalab.mastodon.interfaces;
|
package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 01/05/2017.
|
* Created by Thomas on 01/05/2017.
|
||||||
* Interface when one account have been retrieved
|
* Interface when one account have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveAccountInterface {
|
public interface OnRetrieveAccountInterface {
|
||||||
void onRetrieveAccount(Account account);
|
void onRetrieveAccount(Account account, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,11 +18,12 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 27/04/2017.
|
* Created by Thomas on 27/04/2017.
|
||||||
* Interface when accounts have been retrieved
|
* Interface when accounts have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveAccountsInterface {
|
public interface OnRetrieveAccountsInterface {
|
||||||
void onRetrieveAccounts(List<Account> accounts);
|
void onRetrieveAccounts(List<Account> accounts, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,12 @@
|
||||||
package fr.gouv.etalab.mastodon.interfaces;
|
package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Attachment;
|
import fr.gouv.etalab.mastodon.client.Entities.Attachment;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 01/05/2017.
|
* Created by Thomas on 01/05/2017.
|
||||||
* Interface when an attachment has been retrieved
|
* Interface when an attachment has been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveAttachmentInterface {
|
public interface OnRetrieveAttachmentInterface {
|
||||||
void onRetrieveAttachment(Attachment attachment);
|
void onRetrieveAttachment(Attachment attachment, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,12 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Context;
|
import fr.gouv.etalab.mastodon.client.Entities.Context;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Thomas on 04/05/2017.
|
* Created by Thomas on 04/05/2017.
|
||||||
* Interface when a context for a status has been retrieved
|
* Interface when a context for a status has been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveContextInterface {
|
public interface OnRetrieveContextInterface {
|
||||||
void onRetrieveFeeds(Context context);
|
void onRetrieveFeeds(Context context, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,5 +25,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
* Interface when status have been retrieved
|
* Interface when status have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveFeedsInterface {
|
public interface OnRetrieveFeedsInterface {
|
||||||
void onRetrieveFeeds(List<Status> statuses);
|
void onRetrieveFeeds(List<Status> statuses, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,5 +25,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
* Interface when home timeline toots have been retrieved
|
* Interface when home timeline toots have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveHomeTimelineServiceInterface {
|
public interface OnRetrieveHomeTimelineServiceInterface {
|
||||||
void onRetrieveHomeTimelineService(List<Status> statuses, String acct, String userId);
|
void onRetrieveHomeTimelineService(List<Status> statuses, String acct, String userId, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Notification;
|
import fr.gouv.etalab.mastodon.client.Entities.Notification;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,5 +25,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Notification;
|
||||||
* Interface when notifications have been retrieved
|
* Interface when notifications have been retrieved
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveNotificationsInterface {
|
public interface OnRetrieveNotificationsInterface {
|
||||||
void onRetrieveNotifications(List<Notification> notifications, String acct, String userId);
|
void onRetrieveNotifications(List<Notification> notifications, String acct, String userId, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
package fr.gouv.etalab.mastodon.interfaces;
|
package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Relationship;
|
import fr.gouv.etalab.mastodon.client.Entities.Relationship;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,5 +23,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Relationship;
|
||||||
* Interface when relationship has been retrieved for an account
|
* Interface when relationship has been retrieved for an account
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveRelationshipInterface {
|
public interface OnRetrieveRelationshipInterface {
|
||||||
void onRetrieveRelationship(Relationship relationship);
|
void onRetrieveRelationship(Relationship relationship, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ package fr.gouv.etalab.mastodon.interfaces;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,5 +25,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
* Interface for search accounts
|
* Interface for search accounts
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveSearcAccountshInterface {
|
public interface OnRetrieveSearcAccountshInterface {
|
||||||
void onRetrieveSearchAccounts(List<Account> accounts);
|
void onRetrieveSearchAccounts(List<Account> accounts, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
package fr.gouv.etalab.mastodon.interfaces;
|
package fr.gouv.etalab.mastodon.interfaces;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,5 +22,5 @@ import fr.gouv.etalab.mastodon.client.Entities.Results;
|
||||||
* Interface for search
|
* Interface for search
|
||||||
*/
|
*/
|
||||||
public interface OnRetrieveSearchInterface {
|
public interface OnRetrieveSearchInterface {
|
||||||
void onRetrieveSearch(Results results);
|
void onRetrieveSearch(Results results, Error error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.evernote.android.job.Job;
|
import com.evernote.android.job.Job;
|
||||||
import com.evernote.android.job.JobManager;
|
import com.evernote.android.job.JobManager;
|
||||||
|
@ -38,6 +39,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveHomeTimelineServiceAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveHomeTimelineServiceAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
import fr.gouv.etalab.mastodon.client.Entities.Status;
|
||||||
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
|
@ -116,8 +118,8 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveHomeTimelineService(List<Status> statuses, String acct, String userId) {
|
public void onRetrieveHomeTimelineService(List<Status> statuses, String acct, String userId, Error error) {
|
||||||
if( statuses == null || statuses.size() == 0)
|
if( error != null || statuses == null || statuses.size() == 0)
|
||||||
return;
|
return;
|
||||||
Bitmap icon_notification = null;
|
Bitmap icon_notification = null;
|
||||||
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
|
|
@ -39,6 +39,7 @@ import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
import mastodon.etalab.gouv.fr.mastodon.R;
|
import mastodon.etalab.gouv.fr.mastodon.R;
|
||||||
|
@ -127,8 +128,8 @@ public class NotificationsSyncJob extends Job implements OnRetrieveNotifications
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRetrieveNotifications(List<Notification> notifications, String acct, String userId) {
|
public void onRetrieveNotifications(List<Notification> notifications, String acct, String userId, Error error) {
|
||||||
if( notifications == null || notifications.size() == 0)
|
if( error != null || notifications == null || notifications.size() == 0)
|
||||||
return;
|
return;
|
||||||
Bitmap icon_notification = null;
|
Bitmap icon_notification = null;
|
||||||
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
|
|
@ -99,6 +99,12 @@
|
||||||
android:text="@string/set_share_validation"
|
android:text="@string/set_share_validation"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/set_show_error_messages"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:text="@string/set_show_error_messages"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -208,7 +208,7 @@
|
||||||
|
|
||||||
<string name="set_title_news">Actualités</string>
|
<string name="set_title_news">Actualités</string>
|
||||||
<string name="set_notification_news">Notifier lors de nouveaux pouets sur la page d\'accueil</string>
|
<string name="set_notification_news">Notifier lors de nouveaux pouets sur la page d\'accueil</string>
|
||||||
|
<string name="set_show_error_messages">Afficher les messages d\'erreur</string>
|
||||||
<string name="action_follow">Suivre</string>
|
<string name="action_follow">Suivre</string>
|
||||||
<string name="action_unfollow">Se désabonner</string>
|
<string name="action_unfollow">Se désabonner</string>
|
||||||
<string name="action_block">Bloquer</string>
|
<string name="action_block">Bloquer</string>
|
||||||
|
|
Loading…
Reference in New Issue